-
Notifications
You must be signed in to change notification settings - Fork 1
63 lines (56 loc) · 2.32 KB
/
Copy pathgcp-deploy.yaml
File metadata and controls
63 lines (56 loc) · 2.32 KB
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
###################################
#
# GitHub Actions Workflow File - Deploy the Python API to GCP Cloud Run
#
# NOTE: THIS WORKFLOW IS A LITTLE MORE COMPLEX AND IS NOT OFFICIALLY INCLUDED IN MOSAYIC YET.
# YOU CAN STILL USE IT IF YOU CAN FIGURE OUT HOW TO SET THE RIGHT PERMISSIONS IN GCP (YOU'LL
# NEED TO CREATE A SERVICE ACCOUNT KEY FOR THE COMPUTE ROLE, BASE64 IT AND PUT IT IN GITHUB
# ACTIONS SECRETS AS GCLOUD_SERVICE_KEY). OTHERWISE, IGNORE IT FOR NOW UNTIL THE FEATURE BECOMES
# SUPPORTED IN A MORE USER-FRIENDLY WAY. IN THE MEANTIME, THE API CAN BE DEPLOYED MANUALLY USING
# THE MOSAYIC DASHBOARD (GITHUB -> Backend API Codebase -> DEPLOY TO GLOUD RUN BUTTON).
#
# This workflow deploys the Python API to Google Cloud Run. It deploys to the
# development environment on pushes to the 'develop' branch, and to production
# when a new release is published.
#
# Requirements:
# - GCLOUD_SERVICE_KEY: Base64-encoded service account key for prod environment
# - GCLOUD_PROJECT: Google Cloud project ID for prod environment
#
###################################
name: Deploy to Cloud Run
on:
release:
types: [none] # set this to 'published' to run on release creation
push:
branches:
- none # set this to 'main' to run on pushes to the main branch
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Authenticate with Google Cloud
if: github.event_name == 'push'
env:
GCLOUD_SERVICE_KEY: ${{ secrets.GCLOUD_SERVICE_KEY }}
run: |
echo $GCLOUD_SERVICE_KEY | base64 --decode > $HOME/gcloud-key.json
gcloud auth activate-service-account --key-file=$HOME/gcloud-key.json
gcloud config set project ${{ secrets.GCLOUD_PROJECT }}
- name: Authenticate with Google Cloud
if: github.event_name == 'release'
env:
GCLOUD_SERVICE_KEY: ${{ secrets.GCLOUD_SERVICE_KEY }}
run: |
echo $GCLOUD_SERVICE_KEY | base64 --decode > $HOME/gcloud-key.json
gcloud auth activate-service-account --key-file=$HOME/gcloud-key.json
gcloud config set project ${{ secrets.GCLOUD_PROJECT }}
- name: Deploy to Cloud Run
run: |
gcloud run deploy api-prod \
--source . \
--region us-east1 \
--platform managed \
--allow-unauthenticated