Compare commits

...

1 Commits

Author SHA1 Message Date
nickfyson
f9cc61e9d0 update required checks script to handle new release branch 2023-12-20 12:02:16 +00:00
2 changed files with 15 additions and 6 deletions

View File

@@ -27,11 +27,18 @@ CHECKS="$(gh api repos/github/codeql-action/commits/"${GITHUB_SHA}"/check-runs -
echo "$CHECKS" | jq echo "$CHECKS" | jq
echo "{\"contexts\": ${CHECKS}}" > checks.json for BRANCH in main releases/v2 releases/v3; do
for BRANCH in main releases/v2; do
echo "Updating $BRANCH" echo "Updating $BRANCH"
echo "{\"contexts\": ${CHECKS}}" > checks.json
# we need to special case the JS checks for releases/v2
if [ "$BRANCH" == "releases/v2" ]; then
# we remove entries matching "Check JS (*" and add "Check JS" to the list
PROCESSED_CHECKS="$(echo "$CHECKS" | jq --compact-output --raw-output 'map(select(. | contains("Check JS (") | not)) + ["Check JS"] | unique | sort' )"
echo "{\"contexts\": ${PROCESSED_CHECKS}}" > checks.json
fi
gh api --silent -X "PATCH" "repos/github/codeql-action/branches/$BRANCH/protection/required_status_checks" --input checks.json gh api --silent -X "PATCH" "repos/github/codeql-action/branches/$BRANCH/protection/required_status_checks" --input checks.json
# cat checks.json | jq > checks-"${BRANCH//\//-}".json
done done
rm checks.json rm checks.json

View File

@@ -72,11 +72,13 @@ Once the mergeback has been merged to `main`, the release is complete.
## Keeping the PR checks up to date (admin access required) ## Keeping the PR checks up to date (admin access required)
Since the `codeql-action` runs most of its testing through individual Actions workflows, there are over two hundred jobs that need to pass in order for a PR to turn green. You can regenerate the checks automatically by running the [update-required-checks.sh](.github/workflows/script/update-required-checks.sh) script: Since the `codeql-action` runs most of its testing through individual Actions workflows, there are over two hundred jobs that need to pass in order for a PR to turn green. You can regenerate the required checks automatically by running the [update-required-checks.sh](.github/workflows/script/update-required-checks.sh) script:
1. By default, this script retrieves the checks from the latest SHA on `main`, so make sure that your `main` branch is up to date. 1. By default, this script retrieves the checks from the latest SHA on `main`, so make sure that your `main` branch is up to date.
2. Run the script. If there's a reason to, you can pass in a different SHA as a CLI argument. 2. Run the script. If there's a reason to, you can pass in a different SHA as a CLI argument.
3. After running, go to the [branch protection rules settings page](https://github.com/github/codeql-action/settings/branches) and validate that the rules for `main`, `v1`, and `v2` have been updated. 3. After running, go to the [branch protection rules settings page](https://github.com/github/codeql-action/settings/branches) and validate that the rules for `main`, `v2`, and `v2` have been updated.
Note that the `update-required-checks.sh` script should be updated when there are new diversions between the checks on different release branches.
## Deprecating a CodeQL version (write access required) ## Deprecating a CodeQL version (write access required)
@@ -111,7 +113,7 @@ To deprecate an older version of the Action:
- Add a changelog note announcing the deprecation. - Add a changelog note announcing the deprecation.
- Implement an Actions warning for customers using the deprecated version. - Implement an Actions warning for customers using the deprecated version.
1. Wait for the deprecation period to pass. 1. Wait for the deprecation period to pass.
1. Upgrade the Actions warning for customers using the deprecated version to a non-fatal error, and mention that this version of the Action is no longer supported. 1. Upgrade the Actions warning for customers using the deprecated version to a non-fatal error, and mention that this version of the Action is no longer supported.
1. Make a PR to bump the `OLDEST_SUPPORTED_MAJOR_VERSION` in [release-branches.py](.github/actions/release-branches/release-branches.py). Once this PR is merged, the release process will no longer backport changes to the deprecated release version. 1. Make a PR to bump the `OLDEST_SUPPORTED_MAJOR_VERSION` in [release-branches.py](.github/actions/release-branches/release-branches.py). Once this PR is merged, the release process will no longer backport changes to the deprecated release version.
## Resources ## Resources