-
Notifications
You must be signed in to change notification settings - Fork 12
79 lines (68 loc) · 2.69 KB
/
compute-npi-model.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
76
77
78
79
name: Compute npi-model and upload
on:
workflow_dispatch:
inputs:
channel_name:
description: 'Name of the channel to which the results of the model will be uploaded'
required: true
default: 'model'
jobs:
NPI-model-computation:
runs-on: ubuntu-latest
env:
RUN_REGION: us-west1-c
IMAGE_NAME: npi-model
steps:
- name: Checkout
uses: actions/checkout@master
- uses: satackey/[email protected]
with:
key: npi-docker-cache
continue-on-error: true
- name: Checkout data repo
uses: actions/checkout@v2
with:
repository: epidemics/epimodel-covid-data
path: data-pipeline/data
- uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
name: Setup Google Cloud Platform
with:
version: '290.0.1'
service_account_email: ${{ secrets.COMPUTE_SA_EMAIL }}
service_account_key: ${{ secrets.GOOGLE_COMPUTE_CREDENTIALS }}
# Configure docker to use the gcloud command-line tool as a credential helper
- run: |
gcloud auth configure-docker
# Build the Docker image
- name: Build Docker
working-directory: data-pipeline
run: |
docker build -t gcr.io/${{ secrets.GKE_PROJECT }}/$IMAGE_NAME:$GITHUB_SHA -f Dockerfile.conda .
# Push the Docker image to Google Container Registry
- name: Publish Docker
run: |
docker push gcr.io/${{ secrets.GKE_PROJECT }}/$IMAGE_NAME:$GITHUB_SHA
- name: Google cloud run setup
env:
GCP_KEY: ${{ secrets.NPI_MODEL_SERVICE_ACCOUNT_KEY }}
run: |
echo -E "GCP_KEY='${GCP_KEY}'" > .env
echo "FORETOLD_CHANNEL=${{ secrets.FORETOLD_CHANNEL }}" >> .env
echo "SLACK_WEBHOOK_URL=${{ secrets.EPIFOR_SLACK_WEBHOOK_URL }}" >> .env
echo "INSTANCE_NAME=$IMAGE_NAME" >> .env
echo "PROJECT_NAME=${{ secrets.GKE_PROJECT }}" >> .env
gcloud config set compute/zone $RUN_REGION
gcloud config set project ${{ secrets.GKE_PROJECT }}
- name: Run model and upload results
run: |
gcloud compute instances create-with-container $IMAGE_NAME \
--zone $RUN_REGION \
--image-project cos-cloud \
--image-family cos-stable \
--boot-disk-size 15GB \
--machine-type n2-custom-2-20480-ext \
--scopes default \
--container-restart-policy never \
--container-image "gcr.io/${{ secrets.GKE_PROJECT }}/${IMAGE_NAME}:${GITHUB_SHA}" \
--container-env-file .env \
--container-arg ${{ github.event.inputs.channel_name }}