-
Notifications
You must be signed in to change notification settings - Fork 206
75 lines (61 loc) · 2.28 KB
/
ci-update-workflow.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
name: ci-update-workflow
on:
schedule:
# Run every day at 10AM.
- cron: '0 10 * * *'
workflow_dispatch:
branches:
- master
permissions:
repository-projects: write
pull-requests: write
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 "versions=$versions" >> $GITHUB_OUTPUT
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