20
20
PACKAGE_REPO : ghcr.io/${{ github.repository }}/package
21
21
22
22
jobs :
23
- check_token_expiration :
23
+ check-token-expiration :
24
+ name : Check token expiration
24
25
uses : ./.github/workflows/check-token.yaml
26
+ permissions : {}
25
27
secrets :
26
28
token : ${{ secrets.broker_jwt_BFB8F8BC_D617_484A_9A4E_E9B98AB4E5BC }}
27
- deploy-build :
28
- name : Deploy development version
29
+ deploy-pre-release- build :
30
+ name : Trigger dev/test deployment
29
31
if : ${{ ! startsWith(github.ref, 'refs/tags/') }}
30
32
runs-on : ubuntu-latest
31
- needs : check_token_expiration
33
+ needs : check-token-expiration
34
+ permissions :
35
+ contents : read
36
+ packages : read
32
37
outputs :
33
38
project_version : ${{ steps.set-build-output.outputs.project_version }}
34
39
build_guid : ${{ steps.set-build-output.outputs.build_guid }}
@@ -80,11 +85,14 @@ jobs:
80
85
env :
81
86
PACKAGE_TAG : ${{ github.ref_name }}
82
87
PACKAGE_REPO : ${{ env.PACKAGE_REPO }}
83
- deploy-tag :
84
- name : Deploy release version
88
+ deploy-release-build :
89
+ name : Trigger prod deployment
85
90
if : ${{ startsWith(github.ref, 'refs/tags/') }}
86
91
runs-on : ubuntu-latest
87
- needs : check_token_expiration
92
+ needs : check-token-expiration
93
+ permissions :
94
+ contents : read
95
+ packages : read
88
96
outputs :
89
97
project_version : ${{ steps.set-tag-output.outputs.project_version }}
90
98
build_guid : ${{ steps.set-tag-output.outputs.build_guid }}
@@ -137,16 +145,21 @@ jobs:
137
145
env :
138
146
PACKAGE_TAG : ${{ steps.set-tag-output.outputs.project_tag }}
139
147
PACKAGE_REPO : ${{ env.PACKAGE_REPO }}
140
- submit-job :
141
- name : Submit job
148
+ submit-deployment- job :
149
+ name : Submit deployment job
142
150
if : |
143
151
always() &&
144
- ((needs.deploy-build.result == 'success' && needs.deploy-tag.result == 'skipped') ||
145
- (needs.deploy-build.result == 'skipped' && needs.deploy-tag.result == 'success'))
146
- needs : [deploy-build, deploy-tag]
152
+ ((needs.deploy-pre-release-build.result == 'success' && needs.deploy-release-build.result == 'skipped') ||
153
+ (needs.deploy-pre-release-build.result == 'skipped' && needs.deploy-release-build.result == 'success'))
154
+ needs : [deploy-pre-release-build, deploy-release-build]
155
+ permissions :
156
+ actions : read
157
+ packages : read
158
+ contents : read
147
159
runs-on : ubuntu-latest
148
160
steps :
149
- - name : Submit a job to Jenkins
161
+ # See: https://github.com/bcgov-nr/polaris-pipelines
162
+ - name : Submit deployment job
150
163
run : |
151
164
curl \
152
165
--data-urlencode "token=${{ secrets.JENKINS_TOKEN }}" \
@@ -163,13 +176,15 @@ jobs:
163
176
-H "Connection: close" \
164
177
${{ env.URL }}/${{ env.JOB }}
165
178
env :
166
- PROJECT_VERSION : ${{ needs.deploy-build.outputs.project_version || needs.deploy-tag.outputs.project_version }}
167
- BUILD_GUID : ${{ needs.deploy-build.outputs.build_guid || needs.deploy-tag.outputs.build_guid }}
168
- BUILD_NUMBER : ${{ needs.deploy-build.outputs.build_number || needs.deploy-tag.outputs.build_number }}
169
- ARTIFACT_SHA256 : ${{ needs.deploy-build.outputs.artifact_sha256 || needs.deploy-tag.outputs.artifact_sha256 }}
170
- DOWNLOAD_URL : ${{ needs.deploy-build.outputs.download_url || needs.deploy-tag.outputs.download_url }}
171
- # The automatically generated GitHub token will expire when the workflow ends. We need to wait so the job has time to clone the repo
172
- # and download the package
173
- - name : Sleep
179
+ PROJECT_VERSION : ${{ needs.deploy-pre-release-build.outputs.project_version || needs.deploy-release-build.outputs.project_version }}
180
+ BUILD_GUID : ${{ needs.deploy-pre-release-build.outputs.build_guid || needs.deploy-release-build.outputs.build_guid }}
181
+ BUILD_NUMBER : ${{ needs.deploy-pre-release-build.outputs.build_number || needs.deploy-release-build.outputs.build_number }}
182
+ ARTIFACT_SHA256 : ${{ needs.deploy-pre-release-build.outputs.artifact_sha256 || needs.deploy-release-build.outputs.artifact_sha256 }}
183
+ DOWNLOAD_URL : ${{ needs.deploy-pre-release-build.outputs.download_url || needs.deploy-release-build.outputs.download_url }}
184
+ - name : Display deployment job URL
185
+ run : |
186
+ DEPLOYMENT_JOB_URL="${{ env.URL }}/job/${{ env.SERVICE_PROJECT }}/job/${{ env.SERVICE_NAME }}/"
187
+ echo "Deployment job URL: ${DEPLOYMENT_JOB_URL}"
188
+ - name : Keep GH token alive
174
189
run : sleep 90s
175
190
shell : bash
0 commit comments