Rerun compare-chromium-versions in all PRs after a chromium major version update on their target branch (#26061)
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
name: Rerun Compare Chromium versions
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- '[0-9]+.[0-9]+.x'
|
||||
paths:
|
||||
- package.json
|
||||
types:
|
||||
- closed
|
||||
|
||||
jobs:
|
||||
rerun-compare-chromium-versions:
|
||||
if: github.event.pull_request.merged == true
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
PR_SHA: ${{ github.event.pull_request.head.sha }}
|
||||
TARGET_SHA: ${{ github.event.pull_request.base.sha }}
|
||||
steps:
|
||||
- run: |
|
||||
shopt -s inherit_errexit
|
||||
set -eEo pipefail
|
||||
|
||||
chromium_ver() { curl -fsS "https://raw.githubusercontent.com/${GITHUB_REPOSITORY:?}/${1:?}/package.json"|jq -r .config.projects.chrome.tag; }
|
||||
|
||||
pr_ver="$(chromium_ver "${PR_SHA:?}")"
|
||||
target_ver="$(chromium_ver "${TARGET_SHA:?}")"
|
||||
|
||||
echo "::notice::PR branch: ${pr_ver:?}, target branch: ${target_ver:?}"
|
||||
|
||||
if [[ "${pr_ver%%.*}" != "${target_ver%%.*}" ]]; then
|
||||
while read -r pr_number head_sha; do
|
||||
run_id="$(gh api "/repos/$GITHUB_REPOSITORY/actions/workflows/compare-chromium-versions.yml/runs?head_sha=${head_sha:?}" -q '.workflow_runs[0].id')"
|
||||
pr_url="https://github.com/brave/brave-core/pull/${pr_number:?}"
|
||||
if [[ "$run_id" ]]; then
|
||||
echo "Rerunning $run_id for $pr_url"
|
||||
gh -R "$GITHUB_REPOSITORY" run rerun "$run_id"
|
||||
else
|
||||
echo "No run found for $pr_url"
|
||||
fi
|
||||
sleep 1
|
||||
done < <(gh -R "$GITHUB_REPOSITORY" pr list --limit 1000 --state open --base "$GITHUB_BASE_REF" --json number,headRefOid -q '.[]|"\(.number)\t\(.headRefOid)"')
|
||||
else
|
||||
echo "Chromium major versions match, nothing to do"
|
||||
fi
|
||||
Reference in New Issue
Block a user