-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
149 lines (140 loc) · 2.85 KB
/
.gitlab-ci.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
# Define global cache key
variables:
CACHE_KEY: "$CI_JOB_NAME"
stages:
- SecurityChecker
- CodingStandards
- UnitTesting
- Documentation
workflow:
rules:
- if: $CI_COMMIT_BRANCH == "dev" || ($CI_PIPELINE_SOURCE == 'merge_request_event' && ( $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "dev" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main" ))
security-checker:
image: jakzal/phpqa
tags:
- docker
stage: SecurityChecker
script:
- cd sae4api
- composer install
- local-php-security-checker --path=./composer.lock
allow_failure: true
cache:
key: "$CACHE_KEY"
paths:
- sae4api/vendor/
eslint:
image: node:20.11.1
stage: CodingStandards
tags:
- docker
script:
- cd sae4app
- pwd
- apt update -y
- npm install -g npm@latest
- npm install eslint-plugin-react@latest eslint-plugin-react-hooks@latest --save-dev
- npx eslint -o eslint-report.html
- pwd
- ls -l
- ls -l ../
allow_failure: true
artifacts:
name: "$CI_JOB_NAME"
paths:
- sae4app/eslint-report.html
cache:
key: "$CACHE_KEY"
paths:
- sae4app/node_modules/
phpcs:
image: jakzal/phpqa
tags:
- docker
stage: CodingStandards
script:
- cd sae4api
- composer install
- phpcs -v --standard=PSR12 --ignore=./src/Kernel.php ./src
allow_failure: false
cache:
key: "$CACHE_KEY"
paths:
- sae4api/vendor/
phpstan:
image: jakzal/phpqa
tags:
- docker
stage: CodingStandards
script:
- cd sae4api
- composer install
- phpstan analyse ./src
allow_failure: false
cache:
key: "$CACHE_KEY"
paths:
- sae4api/vendor/
vitest:
image: node:20.11.1
stage: UnitTesting
tags:
- docker
script:
- cd sae4app
- pwd
- apt update -y
- npm install -g npm@latest
- npm install
- npm run lint
- npx vitest --run --coverage
allow_failure: true
artifacts:
name: "$CI_JOB_NAME"
paths:
- sae4app/coverage
cache:
key: "$CACHE_KEY"
paths:
- sae4app/node_modules/
jsdoc:
image: node:20.11.1
stage: Documentation
tags:
- docker
script:
- cd sae4app
- pwd
- apt update -y
- npm install -g npm@latest
- npm install
- npm install jsdoc
- npx jsdoc src -r -d docs || true
allow_failure: true
artifacts:
name: "$CI_JOB_NAME"
paths:
- sae4app/docs
cache:
key: "$CACHE_KEY"
paths:
- sae4app/node_modules/
doxygen:
image: ubuntu:focal
stage: Documentation
tags:
- docker
script:
- cd software
- pwd
- apt update -y
- apt install -y graphviz doxygen
- doxygen
- touch ./doc/index.html
- echo "<meta http-equiv=\"refresh\" content=\"0; url=html/index.html\" />" > ./doc/index.html
allow_failure: true
artifacts:
when: on_success
name: "$CI_JOB_NAME"
paths:
- "software/doc"