-
Notifications
You must be signed in to change notification settings - Fork 4
162 lines (146 loc) · 6.07 KB
/
master.yml
File metadata and controls
162 lines (146 loc) · 6.07 KB
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
name: Draft release from master
on:
push:
branches:
- master
jobs:
release-on-push:
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install deps
run: |
sudo apt update
sudo apt install -y pipx git
pipx ensurepath
pipx install poetry
- name: Test coverage for Gateway API
run: |
export PATH=/root/.local/bin:$PATH
cd microservices/gatewayApi
poetry env use 3.11
poetry install --no-root --no-cache
ENV=test GITHASH=11223344 \
poetry run coverage run --branch -m pytest -s -v
poetry run coverage xml
- name: Test coverage for Scheduler API
run: |
export PATH=/root/.local/bin:$PATH
cd microservices/gatewayJobScheduler
poetry install --no-root
SYNC_INTERVAL=1000 \
DATA_PLANE=test-dp \
poetry run coverage run --branch -m pytest -s -v
poetry run coverage xml
- name: Test coverage for Kube API
run: |
export PATH=/root/.local/bin:$PATH
cd microservices/kubeApi
poetry install --no-root
ACCESS_USER=kubeuser ACCESS_SECRET=s3cret \
poetry run coverage run --branch -m pytest -s -v
poetry run coverage xml
- name: Test coverage for Compatibility API
run: |
export PATH=/root/.local/bin:$PATH
cd microservices/compatibilityApi
poetry install --no-root
poetry run coverage run --branch -m pytest -s -v
poetry run coverage xml
- uses: actions/setup-python@v6
with:
python-version: "3.14"
- name: Test coverage for CSIT OAS Validation API
run: |
export PATH=/root/.local/bin:$PATH
sudo apt install -y nodejs npm
sudo npm install -g @stoplight/spectral-cli@6.14.2
cd microservices/csitOasValidationApi
poetry env use python3.14
poetry install --no-root
./checkout-ruleset-tags.sh ruleset_tag_cache || true
export GITHUB_TAG_CACHE_PATH="$(realpath -m ./ruleset_tag_cache)"
poetry run coverage run --branch -m pytest -s -v
poetry run coverage xml
- name: SonarCloud Scan
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
- id: release
uses: rymndhng/release-on-push-action@v0.24.0
with:
bump_version_scheme: patch
- name: Check Output Parameters
run: |
echo "Got tag name ${{ steps.release.outputs.tag_name }}"
echo "Got release version ${{ steps.release.outputs.version }}"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
logout: false
- name: Create gwa-api docker image related to the release
uses: docker/build-push-action@v5
with:
context: microservices/gatewayApi
file: microservices/gatewayApi/Dockerfile
push: true
tags: ghcr.io/bcgov/gwa-api/gwa-gateway-api:${{ steps.release.outputs.tag_name }}
labels: |
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
- name: Create gwa-kube-api docker image related to the release
uses: docker/build-push-action@v5
with:
context: microservices/kubeApi
file: microservices/kubeApi/Dockerfile
push: true
tags: ghcr.io/bcgov/gwa-api/gwa-kube-api:${{ steps.release.outputs.tag_name }}
labels: |
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
- name: Create gwa-scheduler docker image related to the release
uses: docker/build-push-action@v5
with:
context: microservices/gatewayJobScheduler
file: microservices/gatewayJobScheduler/Dockerfile
push: true
tags: ghcr.io/bcgov/gwa-api/gwa-scheduler:${{ steps.release.outputs.tag_name }}
labels: |
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
- name: Create gwa-compatibility-api docker image related to the release
uses: docker/build-push-action@v5
with:
context: microservices/compatibilityApi
file: microservices/compatibilityApi/Dockerfile
push: true
tags: ghcr.io/bcgov/gwa-api/gwa-compatibility-api:${{ steps.release.outputs.tag_name }}
labels: |
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
- name: Create gwa-csit-oas-validation-api docker image related to the release
uses: docker/build-push-action@v5
with:
context: microservices/csitOasValidationApi
file: microservices/csitOasValidationApi/Dockerfile
push: true
tags: ghcr.io/bcgov/gwa-api/gwa-csit-oas-validation-api:${{ steps.release.outputs.tag_name }}
labels: |
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}