1
+ ---
1
2
kind : pipeline
2
- type : docker
3
- name : openbas-tests-pull-request
4
- concurrency : {
5
- limit : 2
6
- }
7
-
8
- trigger :
9
- event :
10
- - pull_request
3
+ name : openbas-tests
11
4
12
5
steps :
13
6
- name : submodules
14
7
image : alpine/git
15
8
commands :
16
9
- git submodule update --init --recursive
10
+
17
11
- name : api-tests
18
12
image : maven:3.9.6-eclipse-temurin-21
19
13
environment :
@@ -30,8 +24,12 @@ steps:
30
24
- mvn test
31
25
depends_on :
32
26
- submodules
27
+
33
28
- name : frontend-tests
34
- image : node:20.11.0-alpine3.18
29
+ image : node:20-alpine
30
+ volumes :
31
+ - name : cache-node-frontend
32
+ path : /drone/src/openbas-front/node_modules
35
33
commands :
36
34
- cd openbas-front
37
35
- yarn install
@@ -41,141 +39,34 @@ steps:
41
39
- yarn i18n-checker
42
40
- NODE_OPTIONS=--max_old_space_size=8192 yarn test
43
41
44
- services :
45
- - name : minio
46
- image : minio/minio:RELEASE.2023-12-02T10-51-33Z-cpuv1
47
- environment :
48
- MINIO_ROOT_USER : minioadmin
49
- MINIO_ROOT_PASSWORD : minioadmin
50
- command : [ server, /data ]
51
- - name : pgsql
52
- image : postgres:16-alpine
53
- environment :
54
- POSTGRES_USER : openbas
55
- POSTGRES_PASSWORD : openbas
56
- POSTGRES_DB : openbas
57
-
58
- ---
59
-
60
- kind : pipeline
61
- type : docker
62
- name : openbas-e2e-tests-pull-request
63
- concurrency : {
64
- limit : 2
65
- }
66
-
67
- trigger :
68
- event :
69
- - pull_request
70
-
71
- steps :
72
- - name : e2e-tests
73
- image : node:20.11.0
42
+ - name : frontend-e2e-tests
43
+ image : node:20.11.1
44
+ volumes :
45
+ - name : cache-node-frontend-e2e
46
+ path : /drone/src/openbas-front/node_modules
74
47
commands :
75
48
- apt update
76
49
- apt -y install netcat-traditional
77
- - while ! nc -z app-start 8080 ; do sleep 1 ; done
50
+ - while ! nc -z app-e2e 8080 ; do sleep 1 ; done
78
51
- cd openbas-front
79
52
- yarn install
80
53
- yarn playwright install --with-deps chromium
81
- - APP_URL=http://app-start:8080 yarn test:e2e
82
-
83
- services :
84
- - name : minio
85
- image : minio/minio:RELEASE.2023-12-02T10-51-33Z-cpuv1
86
- environment :
87
- MINIO_ROOT_USER : minioadmin
88
- MINIO_ROOT_PASSWORD : minioadmin
89
- command : [ server, /data ]
90
- - name : pgsql
91
- image : postgres:16-alpine
92
- environment :
93
- POSTGRES_USER : openbas
94
- POSTGRES_PASSWORD : openbas
95
- POSTGRES_DB : openbas
96
- - name : app-start
97
- image : maven:3.9.6-eclipse-temurin-21
98
- environment :
99
- SPRING_DATASOURCE_URL : jdbc:postgresql://pgsql:5432/openbas
100
- SPRING_DATASOURCE_USERNAME : openbas
101
- SPRING_DATASOURCE_PASSWORD : openbas
102
- MINIO_ENDPOINT : minio
103
- MINIO_PORT : 9000
104
- MINIO_ACCESS_KEY : minioadmin
105
- MINIO_ACCESS_SECRET : minioadmin
106
- OPENBAS_ADMIN_EMAIL :
[email protected]
107
- OPENBAS_ADMIN_PASSWORD : admin
108
- OPENBAS_ADMIN_TOKEN : 0d17ce9a-f3a8-4c6d-9721-c98dc3dc023f
109
- commands :
110
- - apt update && apt install -y gnupg
111
- - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
112
- - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
113
- - curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
114
- - apt update
115
- - apt install -y yarn
116
- - apt install -y nodejs
117
- - apt install -y git
118
- - git submodule update --init --recursive
119
- - cd openbas-front
120
- - yarn install
121
- - yarn build
122
- - cd ..
123
- - mvn install -DskipTests=true
124
- - java -jar openbas-api/target/openbas-api.jar
125
-
126
- ---
127
-
128
- kind : pipeline
129
- type : docker
130
- name : openbas-tests-master
131
-
132
- trigger :
133
- branch :
134
- - master
135
- event :
136
- exclude :
137
- - pull_request
138
-
139
- steps :
140
- - name : submodules
141
- image : alpine/git
142
- commands :
143
- - git submodule update --init --recursive
144
- - name : api-tests
145
- image : maven:3.9.6-eclipse-temurin-21
146
- environment :
147
- SPRING_DATASOURCE_URL : jdbc:postgresql://pgsql:5432/openbas
148
- MINIO_ENDPOINT : minio
149
- MINIO_PORT : 9000
150
- commands :
151
- - mvn install -DskipTests
152
- - cd openbas-api
153
- - mvn test
154
- - cd ../openbas-framework
155
- - mvn test
156
- - cd ../openbas-injectors
157
- - mvn test
54
+ - APP_URL=http://app-e2e:8080 yarn test:e2e
158
55
depends_on :
159
- - submodules
160
- - name : frontend-tests
161
- image : node:20.11.0-alpine3.18
162
- commands :
163
- - cd openbas-front
164
- - yarn install
165
- - yarn build
166
- - yarn check-ts
167
- - yarn lint
168
- - yarn i18n-checker
169
- - NODE_OPTIONS=--max_old_space_size=8192 yarn test
56
+ - frontend-tests
57
+
170
58
- name : codecov
171
59
image : robertstettner/drone-codecov
172
60
settings :
173
61
token :
174
- from_secret : CODECOV_TOKEN
62
+ from_secret : codecov_token
175
63
files :
176
64
- openbas-api/target/site/jacoco/jacoco.xml
177
65
- openbas-framework/target/site/jacoco/jacoco.xml
178
66
- openbas-injectors/openbas-caldera/target/site/jacoco/jacoco.xml
67
+ depends_on :
68
+ - api-tests
69
+
179
70
- name : build-circleci
180
71
image : curlimages/curl
181
72
commands :
@@ -187,6 +78,11 @@ steps:
187
78
event :
188
79
exclude :
189
80
- tag
81
+ depends_on :
82
+ - api-tests
83
+ - frontend-tests
84
+ - frontend-e2e-tests
85
+
190
86
- name : build-circleci-release
191
87
image : curlimages/curl
192
88
commands :
@@ -197,6 +93,11 @@ steps:
197
93
when :
198
94
event :
199
95
- tag
96
+ depends_on :
97
+ - api-tests
98
+ - frontend-tests
99
+ - frontend-e2e-tests
100
+
200
101
- name : slack
201
102
image : plugins/slack
202
103
settings :
@@ -206,6 +107,10 @@ steps:
206
107
channel : notifications
207
108
when :
208
109
status : [ success, failure ]
110
+ depends_on :
111
+ - api-tests
112
+ - frontend-tests
113
+ - frontend-e2e-tests
209
114
210
115
services :
211
116
- name : minio
@@ -220,3 +125,55 @@ services:
220
125
POSTGRES_USER : openbas
221
126
POSTGRES_PASSWORD : openbas
222
127
POSTGRES_DB : openbas
128
+ - name : minio-e2e
129
+ image : minio/minio:RELEASE.2023-12-02T10-51-33Z-cpuv1
130
+ environment :
131
+ MINIO_ROOT_USER : minioadmin
132
+ MINIO_ROOT_PASSWORD : minioadmin
133
+ command : [ server, /data ]
134
+ - name : pgsql-e2e
135
+ image : postgres:16-alpine
136
+ environment :
137
+ POSTGRES_USER : openbas
138
+ POSTGRES_PASSWORD : openbas
139
+ POSTGRES_DB : openbas
140
+ - name : app-e2e
141
+ image : maven:3.9.6-eclipse-temurin-21
142
+ environment :
143
+ SPRING_DATASOURCE_URL : jdbc:postgresql://pgsql-e2e:5432/openbas
144
+ SPRING_DATASOURCE_USERNAME : openbas
145
+ SPRING_DATASOURCE_PASSWORD : openbas
146
+ MINIO_ENDPOINT : minio-e2e
147
+ MINIO_PORT : 9000
148
+ MINIO_ACCESS_KEY : minioadmin
149
+ MINIO_ACCESS_SECRET : minioadmin
150
+ OPENBAS_ADMIN_EMAIL :
[email protected]
151
+ OPENBAS_ADMIN_PASSWORD : admin
152
+ OPENBAS_ADMIN_TOKEN : 0d17ce9a-f3a8-4c6d-9721-c98dc3dc023f
153
+ commands :
154
+ - apt update && apt install -y gnupg
155
+ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
156
+ - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
157
+ - curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
158
+ - apt update
159
+ - apt install -y yarn
160
+ - apt install -y nodejs
161
+ - apt install -y git
162
+ - git submodule update --init --recursive
163
+ - cd openbas-front
164
+ - yarn install
165
+ - yarn build
166
+ - cd ..
167
+ - mvn install -DskipTests=true
168
+ - java -jar openbas-api/target/openbas-api.jar
169
+
170
+ volumes :
171
+ - name : cache-node-frontend
172
+ host :
173
+ path : /tmp/cache-node-frontend
174
+ - name : cache-node-frontend-e2e
175
+ host :
176
+ path : /tmp/cache-node-frontend-e2e
177
+ - name : cache-python
178
+ host :
179
+ path : /tmp/cache-python
0 commit comments