Merge branch 'main' into henrymercer/drop-codeql-v2.11.5

This commit is contained in:
Henry Mercer
2024-01-02 18:03:32 +00:00
619 changed files with 68850 additions and 7145 deletions

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -35,7 +35,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -39,7 +39,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -39,7 +39,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -45,7 +45,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -39,7 +39,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -35,7 +35,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -39,7 +39,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -51,7 +51,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -39,7 +39,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -35,7 +35,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -75,7 +75,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -35,7 +35,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (
@@ -60,7 +60,7 @@ jobs:
if: runner.os != 'Windows' && matrix.version == '20221211'
shell: bash
run: echo "CODEQL_ENABLE_EXPERIMENTAL_FEATURES_SWIFT=true" >> $GITHUB_ENV
- uses: actions/setup-go@v4
- uses: actions/setup-go@v5
with:
# We need a Go version that ships with statically linked binaries on Linux
go-version: '>=1.21.0'
@@ -69,7 +69,7 @@ jobs:
languages: go
tools: ${{ steps.prepare-test.outputs.tools-url }}
# Deliberately change Go after the `init` step
- uses: actions/setup-go@v4
- uses: actions/setup-go@v5
with:
go-version: '1.20'
- name: Build code

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -35,7 +35,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (
@@ -60,7 +60,7 @@ jobs:
if: runner.os != 'Windows' && matrix.version == '20221211'
shell: bash
run: echo "CODEQL_ENABLE_EXPERIMENTAL_FEATURES_SWIFT=true" >> $GITHUB_ENV
- uses: actions/setup-go@v4
- uses: actions/setup-go@v5
with:
# We need a Go version that ships with statically linked binaries on Linux
go-version: '>=1.21.0'

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -61,7 +61,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -61,7 +61,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (
@@ -86,7 +86,7 @@ jobs:
if: runner.os != 'Windows' && matrix.version == '20221211'
shell: bash
run: echo "CODEQL_ENABLE_EXPERIMENTAL_FEATURES_SWIFT=true" >> $GITHUB_ENV
- uses: actions/setup-go@v4
- uses: actions/setup-go@v5
with:
go-version: ~1.21.1
- uses: ./../action/init

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -61,7 +61,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (
@@ -86,7 +86,7 @@ jobs:
if: runner.os != 'Windows' && matrix.version == '20221211'
shell: bash
run: echo "CODEQL_ENABLE_EXPERIMENTAL_FEATURES_SWIFT=true" >> $GITHUB_ENV
- uses: actions/setup-go@v4
- uses: actions/setup-go@v5
with:
go-version: ~1.21.1
- uses: ./../action/init

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -52,7 +52,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -39,7 +39,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -35,7 +35,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -61,7 +61,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -51,7 +51,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -51,7 +51,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -51,7 +51,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -51,7 +51,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -75,7 +75,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -57,7 +57,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -35,7 +35,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

4
.github/workflows/__ruby.yml generated vendored
View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -45,7 +45,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -61,7 +61,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -45,7 +45,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -39,7 +39,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -45,7 +45,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -35,7 +35,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -35,7 +35,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

4
.github/workflows/__test-proxy.yml generated vendored
View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -35,7 +35,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -47,7 +47,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -39,7 +39,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -12,7 +12,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -75,7 +75,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: >-
matrix.os == 'macos-latest' && (

View File

@@ -2,9 +2,9 @@ name: "CodeQL action"
on:
push:
branches: [main, releases/v2]
branches: [main, releases/v*]
pull_request:
branches: [main, releases/v2]
branches: [main, releases/v*]
# Run checks on reopened draft PRs to support triggering PR checks on draft PRs that were opened
# by other workflows.
types: [opened, synchronize, reopened, ready_for_review]

View File

@@ -9,7 +9,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened

View File

@@ -10,7 +10,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -39,7 +39,7 @@ jobs:
uses: ./.github/actions/prepare-test
with:
version: latest
- uses: actions/setup-go@v4
- uses: actions/setup-go@v5
with:
go-version: ^1.13.1
- uses: ./../action/init

View File

@@ -9,7 +9,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -45,11 +45,11 @@ jobs:
uses: ./.github/actions/prepare-test
with:
version: ${{ matrix.version }}
- uses: actions/setup-go@v4
- uses: actions/setup-go@v5
with:
go-version: ^1.13.1
- name: Setup Python on MacOS
uses: actions/setup-python@v4
uses: actions/setup-python@v5
if: |
matrix.os == 'macos-latest' && (
matrix.version == 'stable-20221211' ||

View File

@@ -4,7 +4,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened

View File

@@ -1,9 +1,9 @@
# This workflow runs after a release of the action. It:
# 1. Merges any changes from the release back into the main branch. Typically, this is just a single
# commit that updates the changelog.
# 2. Tags the merge commit on the release branch that represents the new release with an `v2.x.y`
# This workflow runs after a merge to any release branch of the action. It:
# 1. Tags the merge commit on the release branch that represents the new release with an `vN.x.y`
# tag
# 3. Updates the `v2` tag to refer to this merge commit.
# 2. Updates the `vN` tag to refer to this merge commit.
# 3. Iff vN == vLatest, merges any changes from the release back into the main branch.
# Typically, this is two commits one to update the version number and one to update dependencies.
name: Tag release and merge back
on:
@@ -16,7 +16,7 @@ on:
push:
branches:
- releases/v2
- releases/v*
jobs:
merge-back:
@@ -36,6 +36,8 @@ jobs:
run: echo "${GITHUB_CONTEXT}"
- uses: actions/checkout@v4
with:
fetch-depth: 0 # ensure we have all tags and can push commits
- uses: actions/setup-node@v4
- name: Update git config
@@ -51,6 +53,8 @@ jobs:
short_sha="${GITHUB_SHA:0:8}"
NEW_BRANCH="mergeback/${VERSION}-to-${BASE_BRANCH}-${short_sha}"
echo "newBranch=${NEW_BRANCH}" >> $GITHUB_OUTPUT
LATEST_RELEASE_BRANCH=$(git branch -r | grep -E "origin/releases/v[0-9]+$" | sed 's/origin\///g' | sort -V | tail -1 | xargs)
echo "latest_release_branch=${LATEST_RELEASE_BRANCH}" >> $GITHUB_OUTPUT
- name: Dump branches
env:
@@ -59,6 +63,8 @@ jobs:
echo "BASE_BRANCH ${BASE_BRANCH}"
echo "HEAD_BRANCH ${HEAD_BRANCH}"
echo "NEW_BRANCH ${NEW_BRANCH}"
echo "LATEST_RELEASE_BRANCH ${LATEST_RELEASE_BRANCH}"
echo "GITHUB_REF ${GITHUB_REF}"
- name: Create mergeback branch
env:
@@ -89,8 +95,6 @@ jobs:
env:
VERSION: ${{ steps.getVersion.outputs.version }}
run: |
# Unshallow the repo in order to allow pushes
git fetch --unshallow
# Create the `vx.y.z` tag
git tag --annotate "${VERSION}" --message "${VERSION}"
# Update the `vx` tag
@@ -99,13 +103,13 @@ jobs:
git tag --annotate "${major_version_tag}" --message "${major_version_tag}" --force
# Push the tags, using:
# - `--atomic` to make sure we either update both tags or neither (an intermediate state,
# e.g. where we update the v2.x.y tag on the remote but not the v2 tag, could result in
# unwanted Dependabot updates, e.g. from v2 to v2.x.y)
# - `--force` since we're overwriting the `vx` tag
# e.g. where we update the vN.x.y tag on the remote but not the vN tag, could result in
# unwanted Dependabot updates, e.g. from vN to vN.x.y)
# - `--force` since we're overwriting the `vN` tag
git push origin --atomic --force refs/tags/"${VERSION}" refs/tags/"${major_version_tag}"
- name: Create mergeback branch
if: steps.check.outputs.exists != 'true'
if: ${{ steps.check.outputs.exists != 'true' && endsWith(github.ref_name, steps.getVersion.outputs.latest_release_branch) }}
env:
VERSION: "${{ steps.getVersion.outputs.version }}"
NEW_BRANCH: "${{ steps.getVersion.outputs.newBranch }}"
@@ -129,8 +133,8 @@ jobs:
# Update the version number ready for the next release
npm version patch --no-git-tag-version
# Update the changelog
perl -i -pe 's/^/## \[UNRELEASED\]\n\nNo user facing changes.\n\n/ if($.==5)' CHANGELOG.md
# Update the changelog, adding a new version heading directly above the most recent existing one
awk '!f && /##/{print "'"## [UNRELEASED]\n\nNo user facing changes.\n"'"; f=1}1' CHANGELOG.md > temp && mv temp CHANGELOG.md
git add .
git commit -m "Update changelog and version after ${VERSION}"

View File

@@ -2,7 +2,7 @@ name: PR Checks
on:
push:
branches: [main, releases/v2]
branches: [main, releases/v*]
pull_request:
# Run checks on reopened draft PRs to support triggering PR checks on draft PRs that were opened
# by other workflows.
@@ -15,6 +15,10 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 45
strategy:
matrix:
node-types-version: [16.11, current] # run tests on 16.11 while CodeQL Action v2 is still supported
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -22,6 +26,28 @@ jobs:
- name: Lint
run: npm run-script lint
- name: Update version of @types/node
if: matrix.node-types-version != 'current'
env:
NODE_TYPES_VERSION: ${{ matrix.node-types-version }}
run: |
# Export `NODE_TYPES_VERSION` so it's available to jq
export NODE_TYPES_VERSION="${NODE_TYPES_VERSION}"
contents=$(jq '.devDependencies."@types/node" = env.NODE_TYPES_VERSION' package.json)
echo "${contents}" > package.json
# Usually we run `npm install` on macOS to ensure that we pick up macOS-only dependencies.
# However we're not checking in the updated lockfile here, so it's fine to run
# `npm install` on Linux.
npm install
if [ ! -z "$(git status --porcelain)" ]; then
git config --global user.email "github-actions@github.com"
git config --global user.name "github-actions[bot]"
# The period in `git add --all .` ensures that we stage deleted files too.
git add --all .
git commit -m "Use @types/node=${NODE_TYPES_VERSION}"
fi
- name: Check generated JS
run: .github/workflows/script/check-js.sh
@@ -45,7 +71,7 @@ jobs:
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11
@@ -76,3 +102,44 @@ jobs:
# we won't be able to find them on Windows.
npm config set script-shell bash
npm test
check-node-version:
if: ${{ github.event.pull_request }}
name: Check Action Node versions
runs-on: ubuntu-latest
timeout-minutes: 45
env:
BASE_REF: ${{ github.base_ref }}
steps:
- uses: actions/checkout@v4
- id: head-version
name: Verify all Actions use the same Node version
run: |
NODE_VERSION=$(find . -name "action.yml" -exec yq -e '.runs.using' {} \; | grep node | sort | uniq)
echo "NODE_VERSION: ${NODE_VERSION}"
if [[ $(echo "$NODE_VERSION" | wc -l) -gt 1 ]]; then
echo "::error::More than one node version used in 'action.yml' files."
exit 1
fi
echo "node_version=${NODE_VERSION}" >> $GITHUB_OUTPUT
- id: checkout-base
name: 'Backport: Check out base ref'
if: ${{ startsWith(github.head_ref, 'backport-') }}
uses: actions/checkout@v4
with:
ref: ${{ env.BASE_REF }}
- name: 'Backport: Verify Node versions unchanged'
if: steps.checkout-base.outcome == 'success'
env:
HEAD_VERSION: ${{ steps.head-version.outputs.node_version }}
run: |
BASE_VERSION=$(find . -name "action.yml" -exec yq -e '.runs.using' {} \; | grep node | sort | uniq)
echo "HEAD_VERSION: ${HEAD_VERSION}"
echo "BASE_VERSION: ${BASE_VERSION}"
if [[ "$BASE_VERSION" != "$HEAD_VERSION" ]]; then
echo "::error::Cannot change the Node version of an Action in a backport PR."
exit 1
fi

View File

@@ -2,7 +2,7 @@ name: Test Python Package Installation
on:
push:
branches: [main, releases/v2]
branches: [main, releases/v*]
pull_request:
# Run checks on reopened draft PRs to support triggering PR checks on draft PRs that were opened
# by other workflows.
@@ -139,7 +139,7 @@ jobs:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}

View File

@@ -2,7 +2,7 @@ name: Test that the workaround for python 3.12 on windows works
on:
push:
branches: [main, releases/v2]
branches: [main, releases/v*]
pull_request:
# Run checks on reopened draft PRs to support triggering PR checks on draft PRs that were opened
# by other workflows.
@@ -18,7 +18,7 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: 3.12

View File

@@ -4,7 +4,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened

View File

@@ -31,7 +31,7 @@ jobs:
npm run build
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.11

View File

@@ -2,6 +2,11 @@
# Update the required checks based on the current branch.
# Typically, this will be main.
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
REPO_DIR="$(dirname "$SCRIPT_DIR")"
GRANDPARENT_DIR="$(dirname "$REPO_DIR")"
source "$GRANDPARENT_DIR/releases.ini"
if ! gh auth status 2>/dev/null; then
gh auth status
echo "Failed: Not authorized. This script requires admin access to github/codeql-action through the gh CLI."
@@ -23,13 +28,28 @@ fi
echo "Getting checks for $GITHUB_SHA"
# Ignore any checks with "https://", CodeQL, LGTM, and Update checks.
CHECKS="$(gh api repos/github/codeql-action/commits/"${GITHUB_SHA}"/check-runs --paginate | jq --slurp --compact-output --raw-output '[.[].check_runs | .[].name | select(contains("https://") or . == "CodeQL" or . == "LGTM.com" or . == "check-expected-release-files" or contains("Update") or contains("update") or contains("test-setup-python-scripts") | not)] | unique | sort')"
CHECKS="$(gh api repos/github/codeql-action/commits/"${GITHUB_SHA}"/check-runs --paginate | jq --slurp --compact-output --raw-output '[.[].check_runs | .[].name | select(contains("https://") or . == "CodeQL" or . == "Dependabot" or . == "check-expected-release-files" or contains("Update") or contains("update") or contains("test-setup-python-scripts") | not)] | unique | sort')"
echo "$CHECKS" | jq
echo "{\"contexts\": ${CHECKS}}" > checks.json
for BRANCH in main releases/v2; do
echo "Updating main"
gh api --silent -X "PATCH" "repos/github/codeql-action/branches/main/protection/required_status_checks" --input checks.json
# list all branchs on origin remote matching releases/v*
BRANCHES="$(git ls-remote --heads origin 'releases/v*' | sed 's?.*refs/heads/??' | sort -V)"
for BRANCH in $BRANCHES; do
# strip exact 'releases/v' prefix from $BRANCH using count of characters
VERSION="${BRANCH:10}"
if [ "$VERSION" -lt "$OLDEST_SUPPORTED_MAJOR_VERSION" ]; then
echo "Skipping $BRANCH"
continue
fi
echo "Updating $BRANCH"
gh api --silent -X "PATCH" "repos/github/codeql-action/branches/$BRANCH/protection/required_status_checks" --input checks.json
done

View File

@@ -9,7 +9,7 @@ on:
push:
branches:
- main
- releases/v2
- releases/v*
pull_request:
types:
- opened
@@ -53,4 +53,4 @@ jobs:
with:
upload-database: false
env:
CODEQL_ACTION_TEST_MODE: true
CODEQL_ACTION_TEST_MODE: true

View File

@@ -1,46 +1,131 @@
name: Update release branch
on:
# You can trigger this workflow via workflow dispatch to start a release.
# This will open a PR to update the v2 release branch.
# This will open a PR to update the latest release branch.
workflow_dispatch:
# When a release is complete this workflow will open up backport PRs to older release branches.
# NB while it will trigger on any release branch update, the backport job will not proceed for
# anything other than than releases/v{latest}
push:
branches:
- releases/*
jobs:
prepare:
runs-on: ubuntu-latest
if: github.repository == 'github/codeql-action'
outputs:
version: ${{ steps.versions.outputs.version }}
major_version: ${{ steps.versions.outputs.major_version }}
latest_tag: ${{ steps.versions.outputs.latest_tag }}
backport_source_branch: ${{ steps.branches.outputs.backport_source_branch }}
backport_target_branches: ${{ steps.branches.outputs.backport_target_branches }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Need full history for calculation of diffs
- uses: ./.github/actions/release-initialise
- name: Get version tags
id: versions
run: |
VERSION="v$(jq '.version' -r 'package.json')"
echo "version=${VERSION}" >> $GITHUB_OUTPUT
MAJOR_VERSION=$(cut -d '.' -f1 <<< "${VERSION}")
echo "major_version=${MAJOR_VERSION}" >> $GITHUB_OUTPUT
LATEST_TAG=$(git tag --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' | head -1)
echo "latest_tag=${LATEST_TAG}" >> $GITHUB_OUTPUT
- id: branches
name: Determine older release branches
uses: ./.github/actions/release-branches
with:
major_version: ${{ steps.versions.outputs.major_version }}
latest_tag: ${{ steps.versions.outputs.latest_tag }}
- name: debug logging
run: |
echo 'version: ${{ steps.versions.outputs.version }}'
echo 'major_version: ${{ steps.versions.outputs.major_version }}'
echo 'latest_tag: ${{ steps.versions.outputs.latest_tag }}'
echo 'backport_source_branch: ${{ steps.branches.outputs.backport_source_branch }}'
echo 'backport_target_branches: ${{ steps.branches.outputs.backport_target_branches }}'
update:
timeout-minutes: 45
runs-on: ubuntu-latest
if: github.repository == 'github/codeql-action'
if: github.event_name == 'workflow_dispatch'
needs: [prepare]
env:
REF_NAME: "${{ github.ref_name }}"
REPOSITORY: "${{ github.repository }}"
MAJOR_VERSION: "${{ needs.prepare.outputs.major_version }}"
LATEST_TAG: "${{ needs.prepare.outputs.latest_tag }}"
steps:
- name: Dump environment
run: env
- name: Dump GitHub context
env:
GITHUB_CONTEXT: '${{ toJson(github) }}'
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v4
with:
# Need full history so we calculate diffs
fetch-depth: 0
fetch-depth: 0 # Need full history for calculation of diffs
- uses: ./.github/actions/release-initialise
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Install dependencies
# when the workflow has been manually triggered on main,
# we know that we definitely want the release branch to exist
- name: Ensure release branch exists
run: |
python -m pip install --upgrade pip
pip install PyGithub==1.55 requests
echo "MAJOR_VERSION ${MAJOR_VERSION}"
RELEASE_BRANCH=releases/${MAJOR_VERSION}
if git checkout $RELEASE_BRANCH > /dev/null 2>&1; then
echo "Branch $RELEASE_BRANCH already exists"
echo ""
else
echo "Creating $RELEASE_BRANCH branch"
git checkout -b ${RELEASE_BRANCH} ${LATEST_TAG}
git push --set-upstream origin ${RELEASE_BRANCH}
git branch --show-current
echo ""
fi
echo "Returning to branch: ${REF_NAME}"
git checkout ${REF_NAME}
- name: Update git config
run: |
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
- name: Update release branch
- name: Update current release branch
if: github.event_name == 'workflow_dispatch'
run: |
echo SOURCE_BRANCH=${REF_NAME}
echo TARGET_BRANCH=releases/${MAJOR_VERSION}
python .github/update-release-branch.py \
--github-token ${{ secrets.GITHUB_TOKEN }} \
--repository-nwo ${{ github.repository }} \
--source-branch '${{ env.REF_NAME }}' \
--target-branch 'releases/${{ env.MAJOR_VERSION }}' \
--is-primary-release \
--conductor ${GITHUB_ACTOR}
backport:
timeout-minutes: 45
runs-on: ubuntu-latest
needs: [prepare]
if: ${{ (github.event_name == 'push') && needs.prepare.outputs.backport_target_branches != '[]' }}
strategy:
fail-fast: false
matrix:
target_branch: ${{ fromJson(needs.prepare.outputs.backport_target_branches) }}
env:
SOURCE_BRANCH: ${{ needs.prepare.outputs.backport_source_branch }}
TARGET_BRANCH: ${{ matrix.target_branch }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Need full history for calculation of diffs
- uses: ./.github/actions/release-initialise
- name: Update older release branch
run: |
echo SOURCE_BRANCH=${SOURCE_BRANCH}
echo TARGET_BRANCH=${TARGET_BRANCH}
python .github/update-release-branch.py \
--github-token ${{ secrets.GITHUB_TOKEN }} \
--repository-nwo ${{ github.repository }} \
--source-branch ${SOURCE_BRANCH} \
--target-branch ${TARGET_BRANCH} \
--conductor ${GITHUB_ACTOR}

View File

@@ -14,7 +14,7 @@ jobs:
steps:
- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.7"
- name: Checkout CodeQL Action