Skip to content

add back in deploy stuff #122

add back in deploy stuff

add back in deploy stuff #122

Workflow file for this run

"on":
push:
branches:
- main
- wif
paths:
# only run when the source code changes or this file changes
- "functions/api/**"
- "go.*"
- ".github/workflows/deploy-api.yml"
- "internal/**"
- "Dockerfile"
name: Deploy API to cloud run
jobs:
deploy-api:
permissions:
contents: 'read'
id-token: 'write'
runs-on: ubuntu-latest
env:
IMAGE_NAME: us-central1-docker.pkg.dev/asianamericans-wiki/asianamericanswiki-api/api
steps:
- uses: actions/checkout@v4
- name: Cache firebase emulators
uses: actions/cache@v3
with:
path: ~/.cache/firebase/emulators
key:
${{ runner.os }}-firebase-emulators-${{
hashFiles('~/.cache/firebase/emulators/**') }}
- name: Setup Go
uses: actions/setup-go@v4.1.0
with:
go-version: "1.22.1"
- name: Install emulators and Test
run: |
npm install -g firebase-tools
firebase emulators:exec --only "auth,firestore" 'go test ./...'
- id: "auth"
name: "Authenticate to Google Cloud"
uses: "google-github-actions/auth@v2"
with:
project_id: "asianamericans-wiki"
service_account: "github-action-api-deployer@asianamericans-wiki.iam.gserviceaccount.com"
workload_identity_provider: "projects/424340922093/locations/global/workloadIdentityPools/github-action-wif/providers/github"
- name: Set outputs
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v1
- name: Configure Docker
run: gcloud auth configure-docker --quiet us-central1-docker.pkg.dev
- name: Build Docker image
run: docker build -t $IMAGE_NAME .
- name: Push Docker image
run: docker push $IMAGE_NAME
- id: deploy
name: Deploy
uses: "google-github-actions/deploy-cloudrun@v2"
with:
timeout: 90
service: "api2"
region: "us-central1"
labels: githash=${{ steps.vars.outputs.sha_short }}
image: ${{ env.IMAGE_NAME }}:latest
env_vars: |
GIT_HASH=${{ steps.vars.outputs.sha_short }}
- name: "Use output"
run: 'curl "${{ steps.deploy.outputs.url }}"/api/v1/version'