-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
152 lines (136 loc) · 3.51 KB
/
.gitlab-ci.yml
File metadata and controls
152 lines (136 loc) · 3.51 KB
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
# We need the full bookworm because we otherwise do not get ssh which is required for the submodule clone
image: debian:bookworm-slim
variables:
GIT_SUBMODULE_STRATEGY: normal
stages:
- setup
- build
- test
setup:
stage: setup
script:
- chmod +x setup.sh
- ./setup.sh
build_native:
stage: build
script:
- chmod +x setup.sh
- ./setup.sh
- chmod +x build.sh
- ./build.sh --clean native
- ls -lah builds/native
- ls -lah builds
needs:
- setup
artifacts:
paths:
- builds/native.tar.gz
expire_in: 1 week
build_test:
stage: test
script:
- bash setup.sh # Ensure the environment is set up (this is horrible, but we kinda don't have a choice here)
- chmod +x build.sh
- ./build.sh test
- apt install -y tree
- tree builds/test || true
artifacts:
paths:
- builds/test
exclude:
- builds/test/**/.venv/**/*
- builds/test/stackengine-attack/cJSON-observe/pku/payloads/**/*
- builds/test/**/*.tar.gz
needs:
- build_native
test_plots_bundled:
stage: test
dependencies:
- build_test
script:
- bash setup.sh # I really don't like this, but it needs to install the bare requirements for the next stage...
- cd builds/test
- bash setup.sh
- ls -lah # Debug directory structures
- ls -lah plotters
- bash run.sh plot
needs:
- build_test
artifacts:
paths:
- builds/test/combined-results
get_dataset:
stage: test
script:
- bash setup.sh # I really don't like this, but it needs to install the bare requirements for the next stage...
- cd builds/test
- bash setup.sh
- cd stackengine-attack && bash build-dataset.sh
needs:
- build_test
artifacts:
paths:
- builds/test/stackengine-attack/cJSON-observe/pku/payloads/patients_reduced
build_erim:
stage: test
script:
- bash setup.sh # I really don't like this, but it needs to install the bare requirements for the next stage...
- cd builds/test
- bash setup.sh
- cd stackengine-attack && bash build-erim.sh
needs:
- build_test
artifacts:
paths:
- builds/test/stackengine-attack/cJSON-observe/erim/bin
build_mimalloc:
stage: test
script:
- bash setup.sh # I really don't like this, but it needs to install the bare requirements for the next stage...
- cd builds/test
- bash setup.sh
- cd stackengine-attack && bash build-mimalloc.sh
needs:
- build_test
artifacts:
paths:
- builds/test/stackengine-attack/mimalloc/libmimalloc*
- builds/test/stackengine-attack/mimalloc/mimalloc*
build_venv:
stage: test
script:
- bash setup.sh # I really don't like this, but it needs to install the bare requirements for the next stage...
- cd builds/test
- bash setup.sh
- cd stackengine-attack && bash build-venv.sh
needs:
- build_test
artifacts:
paths:
- builds/test/stackengine-attack/.venv
do_all_remaining:
stage: test
# Switch to the output of the previous task
dependencies:
- build_test
- build_erim
- build_mimalloc
- get_dataset
script:
- bash setup.sh # I really don't like this, but it needs to install the bare requirements for the next stage...
- ls -lah builds/
- ls -lah builds/test
- cd builds/test
- chmod +x setup.sh
- ./setup.sh
- chmod +x build_and_install.sh
- ./build_and_install.sh
- chmod +x run.sh
- ./run.sh
needs:
- setup
- build_test
- get_dataset
- build_erim
- build_mimalloc
- build_venv