From 5d69ccb17a2114fdb6fb2cd7465a8313945b5b64 Mon Sep 17 00:00:00 2001 From: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com> Date: Wed, 3 Jan 2024 13:09:24 +0100 Subject: [PATCH] ci: automatic pinning of Firefox Nightly for testing (#11619) --- .github/workflows/update-browser-pins.yml | 38 ++++++++++++++++++++-- packages/browsers/package.json | 1 + packages/browsers/tools/updateVersions.mjs | 16 +++++++-- 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/.github/workflows/update-browser-pins.yml b/.github/workflows/update-browser-pins.yml index f04ddad0975..6ce1fed9a4f 100644 --- a/.github/workflows/update-browser-pins.yml +++ b/.github/workflows/update-browser-pins.yml @@ -11,7 +11,7 @@ on: workflow_dispatch: jobs: - update: + update-chrome: runs-on: ubuntu-latest steps: - name: Check out repository @@ -29,13 +29,45 @@ jobs: - name: Update Chrome to latest stable version id: update run: | - node --experimental-fetch tools/update_chrome_revision.mjs + node 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 + branch: browser-automation-bot/update-browser-version-chrome + delete-branch: true + committer: Browser Automation Bot + author: Browser Automation Bot + 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 + update-firefox: + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - name: Set up Node.js + uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 + 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:test -w @puppeteer/browsers + - name: Update Firefox to latest nightly version + id: update + run: | + node packages/browsers/tools/updateVersions.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-firefox delete-branch: true committer: Browser Automation Bot author: Browser Automation Bot diff --git a/packages/browsers/package.json b/packages/browsers/package.json index 9544b748efc..bc46265fb8d 100644 --- a/packages/browsers/package.json +++ b/packages/browsers/package.json @@ -5,6 +5,7 @@ "scripts": { "build:docs": "wireit", "build": "wireit", + "build:test": "wireit", "clean": "../../tools/clean.js", "test": "wireit" }, diff --git a/packages/browsers/tools/updateVersions.mjs b/packages/browsers/tools/updateVersions.mjs index 5807d146ebb..9fb704baf5c 100644 --- a/packages/browsers/tools/updateVersions.mjs +++ b/packages/browsers/tools/updateVersions.mjs @@ -6,6 +6,10 @@ import fs from 'node:fs/promises'; +import actions from '@actions/core'; + +import {testFirefoxBuildId} from '../test/build/versions.js'; + const filePath = './test/src/versions.ts'; const getVersion = async () => { @@ -28,6 +32,12 @@ const patch = (input, version) => { const version = await getVersion(); -const contents = await fs.readFile(filePath, 'utf8'); -const patched = patch(contents, version); -fs.writeFile(filePath, patched); +if (testFirefoxBuildId !== version) { + actions.setOutput( + 'commit', + `chore: update Firefox testing pin to ${version}` + ); + const contents = await fs.readFile(filePath, 'utf8'); + const patched = patch(contents, version); + fs.writeFile(filePath, patched); +}