diff --git a/.github/workflows/update-browser-version.yml b/.github/workflows/update-browser-version.yml index 08176f68ce..03c4f24944 100644 --- a/.github/workflows/update-browser-version.yml +++ b/.github/workflows/update-browser-version.yml @@ -29,6 +29,7 @@ jobs: - name: Update browser pin and devtools-protocol run: node tools/update_chrome_revision.mjs - name: Create Pull Request + if: ${{ steps.update.outputs.commit }} uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0 with: token: ${{ secrets.BROWSER_AUTOMATION_BOT_TOKEN }} @@ -36,7 +37,7 @@ jobs: delete-branch: true committer: Browser Automation Bot author: Browser Automation Bot - commit-message: 'build(chrome): update the pinned browser version' - title: 'build(chrome): update the pinned browser version' + commit-message: ${{ steps.update.outputs.commit }} + title: ${{ steps.update.outputs.commit }} body: 'Automatically generated by https://github.com/GoogleChromeLabs/chromium-bidi/blob/main/.github/workflows/update-browser-version.yml' push-to-fork: browser-automation-bot/chromium-bidi diff --git a/package-lock.json b/package-lock.json index 08a2e0b08d..ba87178259 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,6 +54,7 @@ "rollup": "4.21.0", "rollup-plugin-license": "3.5.2", "selenium-webdriver": "4.23.0", + "semver": "7.6.3", "sinon": "18.0.0", "source-map-support": "0.5.21", "tslib": "2.7.0", @@ -7761,6 +7762,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, diff --git a/package.json b/package.json index 5baa174d84..107897c3ff 100644 --- a/package.json +++ b/package.json @@ -181,6 +181,7 @@ "rollup": "4.21.0", "rollup-plugin-license": "3.5.2", "selenium-webdriver": "4.23.0", + "semver": "7.6.3", "sinon": "18.0.0", "source-map-support": "0.5.21", "tslib": "2.7.0", diff --git a/tools/update_chrome_revision.mjs b/tools/update_chrome_revision.mjs index 8f3fbdabf3..7a2f34c1a8 100644 --- a/tools/update_chrome_revision.mjs +++ b/tools/update_chrome_revision.mjs @@ -20,6 +20,9 @@ import {execSync} from 'child_process'; import {writeFile, readFile} from 'fs/promises'; +import actions from '@actions/core'; +import {SemVer} from 'semver'; + import packageJson from '../package.json' assert {type: 'json'}; async function getVersionAndRevisionForCanary() { @@ -57,7 +60,30 @@ async function updateDevToolsProtocolVersion(revision) { await writeFile('./package.json', update); } +const currentVersion = (await readFile('./browser', 'utf8')).split('@').pop(); +console.log(`Current pinned version is: ${currentVersion}`); + const {version, revision} = await getVersionAndRevisionForCanary(); + +const oldSemVer = new SemVer(currentVersion, true); +const newSemVer = new SemVer(version, true); + +let message = `update the pinned browser version to ${version}`; + +if (newSemVer.compare(oldSemVer) <= 0) { + // Exit the process without setting up version + console.warn( + `Version ${version} is older or the same as the current ${currentVersion}` + ); + process.exit(0); +} else if (newSemVer.major === oldSemVer.major) { + message = `build(chrome): ${message}`; +} else { + message = `feat(chrome): ${message}`; +} + +actions.setOutput('commit', message); + console.log(`Chrome Canary version is: ${version} (${revision})`); await updateDevToolsProtocolVersion(revision);