-
Notifications
You must be signed in to change notification settings - Fork 1
56 lines (46 loc) · 1.77 KB
/
deploy-prod.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
name: Deploy to production
on:
workflow_dispatch:
inputs:
tag:
default: latest
required: true
description: Deploy to production with this version tag.
env:
GKE_CLUSTER: tacoma-cluster
GKE_REGION: us-west1
PRODUCTION_TAG: ${{ github.event.inputs.tag }}
USE_GKE_GCLOUD_AUTH_PLUGIN: True
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Sleep for 1 min to let the dust settle
run: sleep 60s
shell: bash
- uses: actions/checkout@v4
# Alternative option - authentication via credentials json
- id: auth
uses: google-github-actions/auth@v2
with:
credentials_json: "${{ secrets.GKE_JSON_KEY }}"
# Setup gcloud CLI
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v2
with:
install_components: "gke-gcloud-auth-plugin"
# Get the GKE credentials so we can deploy to the cluster
- name: Set up GKE credentials
run: |-
gcloud container clusters get-credentials "$GKE_CLUSTER" --region "$GKE_REGION"
# Deploy the Docker image to the GKE cluster
- name: Deploy to Production
if: ${{ env.PRODUCTION_TAG }}
run: |-
echo "Deploying to Production Application: $PRODUCTION_TAG"
kubectl set image deployment/stormpiper-prod stormpiper=gcr.io/tacoma-app/stormpiper-pod:$PRODUCTION_TAG
kubectl set image deployment/beat-prod beat=gcr.io/tacoma-app/bg_worker:$PRODUCTION_TAG
kubectl set image deployment/worker-prod worker=gcr.io/tacoma-app/bg_worker:$PRODUCTION_TAG
kubectl set image deployment/redis-prod redis=gcr.io/tacoma-app/redis:$PRODUCTION_TAG
kubectl rollout restart deploy --selector=app=stormpiper-prod