-
Notifications
You must be signed in to change notification settings - Fork 0
108 lines (89 loc) · 2.65 KB
/
deploy-dev-timeoff.yaml
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
name: DEPLOY_Dev_tiemoff
on:
workflow_dispatch:
push:
branches: ["**"]
paths:
- .github/workflows/deploy-dev-timeoff.yaml
- bin/**
- config/**
- helm-tiemoff/**
- lib/**
- migrations/**
- public/**
- scss/**
- helm-tiemoff/**
- views/**
env:
PROJECT_ID: big-liberty-373120
DOCKER_IMAGE: timeoff
CLUSTER_NAME: gke-timeoff-big-liberty-373120
CLUSTER_LOCATION: us-central1
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Downloading code
uses: actions/checkout@v3
- name: Installing node dependencies
run: npm install
- name: Running tests
# Uncomment the next line to run tests, letting this commented for time execution reason
#run: npm test
run: echo "Dummy execution of tests"
build:
needs: test
runs-on: ubuntu-latest
permissions:
contents: 'read'
id-token: 'write'
actions: 'read'
steps:
- name: Downloading code
uses: actions/checkout@v3
- id: 'auth'
name: 'Authenticate to Google Cloud'
uses: 'google-github-actions/auth@v1'
with:
credentials_json: '${{ secrets.GOOGLE_CREDENTIALS }}'
token_format: 'access_token'
- name: Login to GCR
uses: docker/login-action@v2
with:
registry: gcr.io
username: oauth2accesstoken
password: ${{ steps.auth.outputs.access_token }}
- name: Building image
run: docker build --tag ${{ env.DOCKER_IMAGE }}:latest .
- name: Tag image
run: docker tag timeoff gcr.io/${{ env.PROJECT_ID }}/${{ env.DOCKER_IMAGE }}:$GITHUB_SHA
- name: Push image to registry
run: docker push gcr.io/${{ env.PROJECT_ID }}/${{ env.DOCKER_IMAGE }}:$GITHUB_SHA
deploy:
needs: build
runs-on: ubuntu-latest
permissions:
contents: 'read'
id-token: 'write'
actions: 'read'
steps:
- name: Downloading code
uses: actions/checkout@v3
- id: 'auth'
name: 'Authenticate to Google Cloud'
uses: 'google-github-actions/auth@v1'
with:
credentials_json: '${{ secrets.GOOGLE_CREDENTIALS }}'
token_format: 'access_token'
- name: Get GKE credentials
uses: 'google-github-actions/get-gke-credentials@v1'
with:
cluster_name: '${{ env.CLUSTER_NAME }}'
location: '${{ env.CLUSTER_LOCATION }}'
- name: Configure helm
uses: Azure/setup-helm@v3
- name: Deploy application
run: |
helm upgrade --install timeoff helm-timeoff/ \
--set image.repository=gcr.io/${{ env.PROJECT_ID }}/${{ env.DOCKER_IMAGE }} \
--set image.tag=$GITHUB_SHA