diff --git a/.github/workflows/ci-update-workflow.yml b/.github/workflows/ci-update-workflow.yml new file mode 100644 index 00000000..fde73cb6 --- /dev/null +++ b/.github/workflows/ci-update-workflow.yml @@ -0,0 +1,68 @@ +name: ci-update-workflow + +on: + schedule: + # Run every day at 10AM. + - cron: '0 10 * * *' + +jobs: + update-go-versions: + runs-on: ubuntu-latest + permissions: + id-token: write # Enable OIDC + steps: + - id: 'auth' + uses: 'google-github-actions/auth@v1' + with: + credentials_json: '${{ secrets.GCP_CREDENTIALS }}' + + - name: 'Set up Cloud SDK' + uses: 'google-github-actions/setup-gcloud@v1' + + - name: Get available Go versions + run: | + # Get all supported Go versions and pass the space-separated versions + # string to the next step + versions=$(gcloud functions runtimes list --format="value(NAME)" --project=gae-runtimes-private --region=us-west1 | grep ^go | tr '\n' ' ' | xargs) + echo "::set-output name=versions::$versions" + id: get_versions + + - name: Checkout appengine repo + uses: actions/checkout@v2 + + # Sign the commit. + # https://www.chainguard.dev/unchained/keyless-git-commit-signing-with-gitsign-and-github-actions + - uses: chainguard-dev/actions/setup-gitsign@main + + - name: Update Go versions + run: | + readarray -d ' ' -t versions <<< "${{ steps.get_versions.outputs.versions }}" + + versions_str="" + for version in "${versions[@]}"; do + major=${version:2:1} + minor=${version:3:2} + versions_str+="'$major.$minor.x', " + done + # Remove the last comma and space + versions_str=${versions_str%, *} + + # Only replace the first occurance + sed -i "0,/^ go-version: \[.*/s// go-version: \[$versions_str\]/" .github/workflows/ci-v2.yaml + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: Update go-version matrix + title: Update go-version matrix + body: | + - go-version matrix updates + + Update the go-version matrix in the CI workflows to include the new supported runtimes. + + Auto-generated by [create-pull-request][1] + + [1]: https://github.com/peter-evans/create-pull-request + branch: update-go-version-matrix + reviewers: jinglundong