-
Notifications
You must be signed in to change notification settings - Fork 40
130 lines (112 loc) · 3.94 KB
/
dev-test-jan-release.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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
## For each release, the value of name, branches, RELEASE_NAME and PR_NUMBER need to be adjusted accordingly
## For each release, update lib/config.js: version and releaseBranch
name: TFRS Dev/Test Jan Release
on:
push:
branches: [ main-release-jan-2024 ]
# paths:
# - frontend/**
# - backend/**
# - security-scan/**
workflow_dispatch:
branches:
- main-release-jan-2024
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
unit-test:
name: Run Backend Unit Tests
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/[email protected]
- name: Run coverage report for django tests
uses: kuanfandevops/django-test-action@itvr-django-test
continue-on-error: true
with:
settings-dir-path: "backend/api"
requirements-file: "backend/requirements.txt"
managepy-dir: backend
lint:
name: Linting
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/[email protected]
- name: Frontend Linting
continue-on-error: true
run: |
cd frontend
pwd
npm install
npm run lint
- name: Backend linting
uses: github/super-linter/slim@v4
continue-on-error: true
env:
DEFAULT_BRANCH: ${{ github.ref_name }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FILTER_REGEX_INCLUDE: .*backend/.*.py
VALIDATE_PYTHON_PYLINT: true
LOG_LEVEL: WARN
# when build branch, the suffix sample is -main-release-jan-2024
# the checkout-ref sample is main-release-jan-2024
build:
name: Build
needs: [unit-test, lint]
uses: ./.github/workflows/build-template.yaml
with:
suffix: -${{ github.ref_name }}
checkout-ref: ${{ github.ref_name }}
secrets:
tools-namespace: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-tools
openshift-server: ${{ secrets.OPENSHIFT_SERVER }}
openshift-token: ${{ secrets.OPENSHIFT_TOKEN }}
# The suffix is -dev-jan, the deployment names are tfrs-backend-dev-jan, tfrs-frontend-dev-jan and etc..
# The image tags are tfrs-backend:dev-main-release-jan-2024, tfrs-frontend:dev-main-release-jan-2024 and etc..
deploy-on-dev:
name: Deploy on Dev
needs: build
uses: ./.github/workflows/branch-deploy-template.yaml
with:
branch-name: ${{ github.ref_name }}
suffix: -dev-jan
env-name: dev
database-service-host-name: tfrs-crunchy-dev-pgbouncer
rabbitmq-vhost: tfrs-jan-vhost
secrets:
tools-namespace: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-tools
namespace: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-dev
openshift-server: ${{ secrets.OPENSHIFT_SERVER }}
openshift-token: ${{ secrets.OPENSHIFT_TOKEN }}
approval-test-deployment:
name: Approval deployment on Test
runs-on: ubuntu-latest
needs: deploy-on-dev
timeout-minutes: 60
steps:
- name: Ask for approval for TFRS Test deployment
uses: trstringer/[email protected]
with:
secret: ${{ github.TOKEN }}
approvers: AlexZorkin,emi-hi,tim738745,kuanfandevops,jig-patel,prv-proton,JulianForeman
minimum-approvals: 1
issue-title: "TFRS main-release-jan-2024 Test Deployment"
deploy-on-test:
name: Deploy on Test
needs: approval-test-deployment
uses: ./.github/workflows/branch-deploy-template.yaml
with:
branch-name: main-release-jan-2024
suffix: -test-jan
env-name: test
database-service-host-name: tfrs-crunchy-test-pgbouncer
rabbitmq-vhost: tfrs-jan-vhost
secrets:
tools-namespace: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-tools
namespace: ${{ secrets.OPENSHIFT_NAMESPACE_PLATE }}-test
openshift-server: ${{ secrets.OPENSHIFT_SERVER }}
openshift-token: ${{ secrets.OPENSHIFT_TOKEN }}