Skip to content

add cd workflow (continuation) #19

add cd workflow (continuation)

add cd workflow (continuation) #19

Workflow file for this run

name: CD
on:
pull_request:
branches: [master] # Temporary trigger
workflow_run:
workflows: [CI]
branches: [master]
types:
- completed
env:
GO_VERSION: ^1.21.5
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
TAG: sha-${{ github.sha }}
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: "read"
packages: write
id-token: "write"
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# - name: Pull image
# run: docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.TAG }}
# - name: Tag image as latest
# run: docker tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.TAG }} ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
# - name: Push latest image
# run: docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
- name: Log into Google Cloud Platform
uses: "google-github-actions/auth@v2"
with:
project_id: "go-modproxy"
workload_identity_provider: ${{ secrets.GOOGLE_WORKLOAD_IDENTITY_PROVIDER_ID }}
service_account: "${{ secrets.GOOGLE_CLOUD_RUN_SERVICE_ACCOUNT }}"
- name: "Deploy to Cloud Run"
uses: "google-github-actions/deploy-cloudrun@v2"
with:
service: "${{ vars.GOOGLE_SERVICE_NAME }}"
image: "europe-west4-docker.pkg.dev/go-modproxy-9343/cloud-run-source-deploy/go-modproxy:5593c0f299a66b6c0353603b649ad68e74934e12" # todo: remove hardcoded image
env_vars: |
HOST_PATTERN=${{ vars.HOST_PATTERN }}
HOST_REPLACEMENT=${{ vars.HOST_REPLACEMENT }}
PATH_PATTERN=${{ vars.PATH_PATTERN }}
PATH_REPLACEMENT=${{ vars.PATH_REPLACEMENT }}
region: "${{ vars.GOOGLE_SERVICE_REGION }}"
project_id: "${{ vars.GOOGLE_PROJECT_ID }}"
flags: "--service-account=${{ secrets.GOOGLE_CLOUD_RUN_SERVICE_ACCOUNT}}" # action does not expose this feature