Skip to content

Commit 8468a1d

Browse files
authored
add gated release to production (#12)
1 parent f9a2a6c commit 8468a1d

File tree

3 files changed

+33
-5
lines changed

3 files changed

+33
-5
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ jobs:
128128
gcloud run services update ${{ env.INTEGRATION_SERVICE_NAME }} \
129129
--project="${{ env.INTEGRATION_PROJECT_ID }}" \
130130
--region="${{ env.INTEGRATION_REGION }}" \
131-
--image="${{ env.DOCKER_REPO }}/github-metrics-aggregator-server:${{ env.DOCKER_TAG }}"
131+
--image="${{ env.DOCKER_REPO }}/github-metrics-aggregator-server:${{ env.DOCKER_TAG }}-amd64"
132132
133133
integration:
134134
runs-on: 'ubuntu-latest'

.github/workflows/release.yml

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@ on:
1919
tags:
2020
- 'v*'
2121
env:
22-
SOURCE_DOCKER_IMAGE: 'us-docker.pkg.dev/github-metrics-ci/ci-images/github-metrics-aggregator-server:${{ github.sha }}'
23-
DEST_DOCKER_REPO: 'us-docker.pkg.dev/abcxyz-artifacts/docker-images/github-metrics-aggregator-server:${{ github.ref_name }}'
2422
WIF_PROVIDER: 'projects/138221849759/locations/global/workloadIdentityPools/github-pool-ac8f/providers/github-provider'
2523
WIF_SERVICE_ACCOUNT: 'github-metrics-ac8f-ci-sa@github-metrics-ci.iam.gserviceaccount.com'
24+
SOURCE_DOCKER_IMAGE: 'us-docker.pkg.dev/github-metrics-ci/ci-images/github-metrics-aggregator-server:${{ github.sha }}'
25+
TARGET_DOCKER_IMAGE: 'us-docker.pkg.dev/abcxyz-artifacts/docker-images/github-metrics-aggregator-server:${{ github.ref_name }}'
26+
PROD_PROJECT_ID: 'github-metrics-prod'
27+
PROD_REGION: 'us-central1'
28+
PROD_SERVICE_NAME: 'github-metrics-webhook-51e3'
2629

2730
# Don't cancel in progress since we don't want to have half-baked releases.
2831
concurrency: '${{ github.workflow }}-${{ github.head_ref || github.ref }}-release'
@@ -58,3 +61,29 @@ jobs:
5861
docker pull ${{ env.SOURCE_DOCKER_IMAGE }}-arm64
5962
docker tag ${{ env.SOURCE_DOCKER_IMAGE }}-arm64 ${{ env.TARGET_DOCKER_IMAGE }}-arm64
6063
docker push ${{ env.TARGET_DOCKER_IMAGE }}-arm64
64+
65+
production:
66+
runs-on: 'ubuntu-latest'
67+
environment: 'production'
68+
needs:
69+
- 'image-release'
70+
permissions:
71+
contents: 'read'
72+
id-token: 'write'
73+
steps:
74+
- name: 'Checkout'
75+
uses: 'actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c' # ratchet:actions/checkout@v3
76+
- id: 'auth'
77+
name: 'Authenticate to Google Cloud'
78+
uses: 'google-github-actions/auth@ef5d53e30bbcd8d0836f4288f5e50ff3e086997d' # ratchet:google-github-actions/auth@v1
79+
with:
80+
workload_identity_provider: '${{ env.WIF_PROVIDER }}'
81+
service_account: '${{ env.WIF_SERVICE_ACCOUNT }}'
82+
- name: 'Setup gcloud'
83+
uses: 'google-github-actions/setup-gcloud@d51b5346f85640ec2aa2fa057354d2b82c2fcbce' # ratchet:google-github-actions/setup-gcloud@v1
84+
- name: 'Deploy to Cloud Run'
85+
run: |-
86+
gcloud run services update ${{ env.PROD_SERVICE_NAME }} \
87+
--project="${{ env.PROD_PROJECT_ID }}" \
88+
--region="${{ env.PROD_REGION }}" \
89+
--image="${{ env.TARGET_DOCKER_IMAGE }}-amd64"

.goreleaser.docker.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,7 @@ dockers:
8282
- '--label=org.opencontainers.image.version={{ .Version }}'
8383

8484
docker_manifests:
85-
- name_template: '{{ .Env.DOCKER_REPO }}/github-metrics-aggregator-server:{{ .Env.DOCKER_TAG }}'
86-
image_templates:
85+
- image_templates:
8786
- '{{ .Env.DOCKER_REPO }}/github-metrics-aggregator-server:{{ .Env.DOCKER_TAG }}-amd64'
8887
- '{{ .Env.DOCKER_REPO }}/github-metrics-aggregator-server:{{ .Env.DOCKER_TAG }}-arm64'
8988

0 commit comments

Comments
 (0)