-
Notifications
You must be signed in to change notification settings - Fork 1
69 lines (60 loc) · 2.08 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
name: PR
on:
pull_request:
concurrency:
# Cancel in progress for PR open and close
group: ${{ github.workflow }}-${{ github.event.number }}
cancel-in-progress: true
jobs:
schema-spy:
name: Schema Spy
uses: ./.github/workflows/.schema-spy.yml
validate:
name: Validate
uses: ./.github/workflows/.pr-validate.yml
with:
markdown_links: |
- [Frontend](https://${{ github.event.repository.name }}-${{ github.event.number }}-frontend.apps.silver.devops.gov.bc.ca)
- [Backend](https://${{ github.event.repository.name }}-${{ github.event.number }}-frontend.apps.silver.devops.gov.bc.ca/api)
builds:
name: Fake Builds (retags)
runs-on: ubuntu-latest
strategy:
matrix:
package: [backend, frontend, migrations]
timeout-minutes: 1
steps:
- uses: shrink/actions-docker-registry-tag@v4
with:
registry: ghcr.io
repository: ${{ github.repository }}/${{ matrix.package }}
target: latest
tags: ${{ github.event.number }}
- run: |
# Verify tagging
INSPECT="docker manifest inspect ghcr.io/${{ github.repository }}/${{ matrix.package }}"
SOURCE=$(${INSPECT}:latest | jq -r '.manifests[] | select(.platform.architecture=="amd64") | .digest')
TARGET=$(${INSPECT}:${{ github.event.number }} | jq -r '.manifests[] | select(.platform.architecture=="amd64") | .digest')
if [ "${SOURCE}" != "${TARGET}" ]; then
echo "ERROR: Tagging failed!"
exit 1
fi
deploys:
name: Deploys
needs: [builds]
uses: ./.github/workflows/.deployer.yml
secrets:
oc_namespace: ${{ secrets.oc_namespace }}
oc_token: ${{ secrets.oc_token }}
results:
name: Results
needs: [deploys, schema-spy, validate]
runs-on: ubuntu-latest
steps:
- if: needs.deploys.outputs.triggered == 'true'
run: echo "Success!"
- if: needs.deploys.outputs.triggered != 'true'
run: |
# Handle fail
echo "needs.deploys == ${{ toJson(needs.deploys) }}"
exit 1