# This workflow will update the pinned browsers

name: 'Update the pinned browsers'

permissions: read-all

on:
  schedule:
    # Run everyday at: https://crontab.guru/#0_6_*_*_*.
    - cron: '0 6 * * *'
  workflow_dispatch:

jobs:
  update:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository
        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
      - name: Set up Node.js
        uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
        with:
          cache: npm
          node-version: lts/*
      - uses: google/wireit@f3a3c79c553122e2fe5829eeac7d815326502903 # setup-github-actions-caching/v1
      - name: Install npm dependencies
        run: npm ci
      - name: Build Puppeteer
        run: npm run build -w puppeteer
      - name: Update Chrome to latest stable version
        id: update
        run: |
          node --experimental-fetch tools/update_chrome_revision.mjs
      - name: Create Pull Request
        if: ${{ steps.update.outputs.commit }}
        uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5.0.2
        with:
          token: ${{ secrets.BROWSER_AUTOMATION_BOT_TOKEN }}
          branch: browser-automation-bot/update-browser-version
          delete-branch: true
          committer: Browser Automation Bot <browser-automation-bot@google.com>
          author: Browser Automation Bot <browser-automation-bot@google.com>
          commit-message: ${{ steps.update.outputs.commit }}
          title: ${{ steps.update.outputs.commit }}
          body: 'Automatically generated by https://github.com/puppeteer/puppeteer/blob/main/.github/workflows/update-browser-pins.yml'
          labels: dependencies
