This repository was archived by the owner on May 20, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
170 lines (132 loc) · 5.3 KB
/
Code_quality_and_docker_build.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
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
163
164
165
166
167
168
169
170
name : Code quality and docker build
on:
push:
branches:
- main
pull_request:
jobs:
pre-commit-hooks:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.12
- name: Install pre-commit
run: pip install --upgrade pip && pip install pre-commit
- name: Run trailing-whitespace check
run: pre-commit run trailing-whitespace --all-files
- name: Run end-of-file-fixer check
run: pre-commit run end-of-file-fixer --all-files
- name: Run check-yaml check
run: pre-commit run check-yaml --all-files
- name: Run check-toml check
run: pre-commit run check-toml --all-files
- name : Run check-merge-conflict check
run: pre-commit run check-merge-conflict --all-files
- name: Run check-json check
run: pre-commit run check-json --all-files
- name: Run check-added-large-files check
run: pre-commit run check-added-large-files --all-files
spell-check:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20'
- name: Install cspell
run: npm install -g cspell
- name: Run cspell
run: cspell "**" --config "./cspell.json"
golangci-lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run golangci-lint
run: |
cd api/
sudo docker build --target lint -t nfc-entry-management-api-lint:latest -f ./Dockerfile .
sudo docker run --rm nfc-entry-management-api-lint:latest
isort:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run isort
run: |
cd nfc_reader/
sudo docker build --target isort -t nfc-entry-management-nfc-reader-isort:latest -f ./Dockerfile .
sudo docker run --rm nfc-entry-management-nfc-reader-isort:latest
black:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run black
run: |
cd nfc_reader/
sudo docker build --target black -t nfc-entry-management-nfc-reader-black:latest -f ./Dockerfile .
sudo docker run --rm nfc-entry-management-nfc-reader-black:latest
mypy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run mypy
run: |
cd nfc_reader/
sudo docker build --target mypy -t nfc-entry-management-nfc-reader-mypy:latest -f ./Dockerfile .
sudo docker run --rm nfc-entry-management-nfc-reader-mypy:latest
pylint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run pylint
run: |
cd nfc_reader/
sudo docker build --target pylint -t nfc-entry-management-nfc-reader-pylint:latest -f ./Dockerfile .
sudo docker run --rm nfc-entry-management-nfc-reader-pylint:latest
docker-build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Create api/.env.api
run: |
touch api/.env.api
echo "TIME_VALIDATION_MIN=${{ secrets.TIME_VALIDATION_MIN }}" >> api/.env.api
echo "STUDENT_NUMBER_MIN=${{ secrets.STUDENT_NUMBER_MIN }}" >> api/.env.api
echo "STUDENT_NUMBER_MAX=${{ secrets.STUDENT_NUMBER_MAX }}" >> api/.env.api
echo "NAME_MIN_LENGTH=${{ secrets.NAME_MIN_LENGTH }}" >> api/.env.api
echo "NAME_MAX_LENGTH=${{ secrets.NAME_MAX_LENGTH }}" >> api/.env.api
echo "MYSQL_USER=${{ secrets.MYSQL_USER }}" >> api/.env.api
echo "MYSQL_PASSWORD=${{ secrets.MYSQL_PASSWORD }}" >> api/.env.api
echo "MYSQL_HOST=${{ secrets.MYSQL_HOST }}" >> api/.env.api
echo "MYSQL_DATABASE=${{ secrets.MYSQL_DATABASE }}" >> api/.env.api
- name: Create mysql/.env.mysql
run: |
touch mysql/.env.mysql
echo "TZ=${{ secrets.TZ }}" >> mysql/.env.mysql
echo "MYSQL_USER=${{ secrets.MYSQL_USER }}" >> mysql/.env.mysql
echo "MYSQL_ROOT_PASSWORD=${{ secrets.MYSQL_ROOT_PASSWORD }}" >> mysql/.env.mysql
echo "MYSQL_PASSWORD=${{ secrets.MYSQL_PASSWORD }}" >> mysql/.env.mysql
echo "MYSQL_HOST=${{ secrets.MYSQL_HOST }}" >> mysql/.env.mysql
echo "MYSQL_DATABASE=${{ secrets.MYSQL_DATABASE }}" >> mysql/.env.mysql
echo "LANG=${{ secrets.LANG }}" >> mysql/.env.mysql
- name: Create nfc_reader/.env.nfc_reader
run: |
touch nfc_reader/.env.nfc_reader
echo "NFC_SYSTEM_CODE=${{ secrets.NFC_SYSTEM_CODE }}" >> nfc_reader/.env.nfc_reader
echo "NFC_SERVICE_CODE=${{ secrets.NFC_SERVICE_CODE }}" >> nfc_reader/.env.nfc_reader
echo "NFC_STUDENT_NUM_BLOCK_CODE=${{ secrets.NFC_STUDENT_NUM_BLOCK_CODE }}" >> nfc_reader/.env.nfc_reader
echo "NFC_NAME_BLOCK_CODE=${{ secrets.NFC_NAME_BLOCK_CODE }}" >> nfc_reader/.env.nfc_reader
echo "API_URL=${{ secrets.API_URL }}" >> nfc_reader/.env.nfc_reader
- name: Build docker image
run: sudo docker-compose build