-
Notifications
You must be signed in to change notification settings - Fork 4
135 lines (108 loc) · 3.42 KB
/
check-ui.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
name: Code Quality
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
eslint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 18.20.4
- name: Install Node.js dependencies
run: npm install
working-directory: ./src/frontend
- name: Run ESLint
run: npm run lint
working-directory: ./src/frontend
prettier:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 18.20.4
- name: Install Node.js dependencies
run: npm install
working-directory: ./src/frontend
- name: Run Prettier
run: npm run prettier
working-directory: ./src/frontend
misc:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 18.20.4
- name: Check i18n JSON's sorting
# We check if JSON are sorted alphabetically
# Too sort a translation JSON you can run
# > cat lang.json | jq -S . > tmp.json && mv tmp.json lang.json
# Remember to apply Prettier formatting after.
working-directory: ./src/frontend/src/assets/locales
run: |
# Flag to track if any file fails the check
failed=0
for file in *.json; do
if [[ "$(jq -S . "$file")" != "$(jq . "$file")" ]]; then
echo "$file: JSON is invalid or keys are not sorted"
failed=1
fi
done
if [ $failed -eq 1 ]; then
exit 1
else
echo "All JSON files are valid and keys are sorted"
fi
- name: Check i18n JSON's length
# We check if all JSON have the same number of rows
working-directory: ./src/frontend/src/assets/locales
run: |
# Flag to track if any file fails the check
failed=0
# Define the reference file
reference_file="en.json"
# Get the number of lines in the reference file
line_count=$(wc -l < "$reference_file")
# Loop through all JSON files and compare line counts
for file in ./*.json; do
if [ "$file" != "$reference_file" ]; then
current_line_count=$(wc -l < "$file")
if [ "$current_line_count" -ne "$line_count" ]; then
echo "Line count mismatch in file: $file"
failed=1
fi
fi
done
if [ $failed -eq 1 ]; then
exit 1
else
echo "All JSON files in the current directory have the same number of lines."
fi
build-production:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 18.20.4
- name: Install Node.js dependencies
run: npm install
working-directory: ./src/frontend
- name: Build npm on production mode
run: npm run build
working-directory: ./src/frontend