generated from bcgov/quickstart-openshift
-
Notifications
You must be signed in to change notification settings - Fork 1
129 lines (123 loc) · 4.07 KB
/
pr-open.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
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: Pull Request Open
on:
pull_request:
workflow_dispatch:
concurrency:
group: pr-${{ github.ref }}
cancel-in-progress: true
jobs:
setup:
name: Reset the deployment number
runs-on: ubuntu-22.04
outputs:
zone: ${{ steps.calculate.outputs.zone }}
steps:
- name: Calculate the deployment number
id: calculate
run: |
echo "zone=$((${{ github.event.number }} % 50))" >> $GITHUB_OUTPUT
prep:
name: Prep
permissions:
pull-requests: write
runs-on: ubuntu-22.04
needs: setup
steps:
- name: OpenShift Init
uses: bcgov-nr/[email protected]
with:
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
file: libs/openshift.init.yml
overwrite: false
parameters: -p ZONE=${{ needs.setup.outputs.zone }}
triggers: ('db/' 'libs/' 'api/' 'admin/' 'public/')
builds:
name: Builds
runs-on: ubuntu-22.04
permissions:
packages: write
needs: setup
env:
ZONE: ${{ needs.setup.outputs.zone }}
strategy:
matrix:
package: [admin, api, db, public]
include:
- package: admin
build_context: ./
build_file: admin/Dockerfile
triggers: ('admin/' 'libs/')
- package: api
build_context: ./
build_file: api/Dockerfile
triggers: ('api/' 'libs/')
- package: db
triggers: ('db')
- package: public
build_context: ./
build_file: public/Dockerfile
triggers: ('public/' 'libs/')
steps:
- uses: actions/checkout@v4
- uses: bcgov-nr/[email protected]
with:
package: ${{ matrix.package }}
build_context: ${{ matrix.build_context }}
build_file: ${{ matrix.build_file }}
keep_versions: 100
tag: ${{ env.ZONE }}
tag_fallback: test
token: ${{ secrets.GITHUB_TOKEN }}
triggers: ${{ matrix.triggers }}
deploys:
name: Deploys
needs: [prep, builds, setup]
runs-on: ubuntu-22.04
env:
ZONE: ${{ needs.setup.outputs.zone }}
timeout-minutes: 10
strategy:
matrix:
name: [api, admin, db, public]
include:
- name: api
file: api/openshift.deploy.yml
overwrite: true
parameters:
-p OC_NAMESPACE=${{ vars.OC_NAMESPACE }}
-p REPLICA_COUNT=1
-p DB_TESTDATA=true
-p AWS_USER_POOLS_WEB_CLIENT_ID="7hpo4qa7j0hs0rkfl2pm0sto5k"
-p LOGOUT_CHAIN_URL="https://logontest7.gov.bc.ca/clp-cgi/logoff.cgi?retnow=1&returl=https://dev.loginproxy.gov.bc.ca/auth/realms/standard/protocol/openid-connect/logout?redirect_uri="
triggers: ('db/' 'libs/' 'api/')
- name: admin
file: admin/openshift.deploy.yml
overwrite: true
parameters: -p REPLICA_COUNT=1
triggers: ('db/' 'libs/' 'api/' 'admin/')
- name: db
file: db/openshift.deploy.yml
overwrite: false
triggers: ('db/' 'libs/' 'api/' 'admin/' 'public/')
- name: public
file: public/openshift.deploy.yml
overwrite: true
parameters: -p REPLICA_COUNT=1
triggers: ('db/' 'libs/' 'api/' 'public/')
steps:
- uses: bcgov-nr/[email protected]
with:
file: ${{ matrix.file }}
oc_namespace: ${{ vars.OC_NAMESPACE }}
oc_server: ${{ vars.OC_SERVER }}
oc_token: ${{ secrets.OC_TOKEN }}
overwrite: ${{ matrix.overwrite }}
penetration_test: false
parameters:
-p PROMOTE=${{ github.repository }}/${{ matrix.name }}:${{ env.ZONE }}
-p URL=fom-${{ env.ZONE }}.apps.silver.devops.gov.bc.ca
-p ZONE=${{ env.ZONE }} ${{ matrix.parameters }}
triggers: ${{ matrix.triggers }}