-
Notifications
You must be signed in to change notification settings - Fork 7
/
.gitlab-ci.yml
174 lines (156 loc) · 5 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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
# This specification is in transition to `gitlab-templates`. Some required
# features are not implemented yet, so relevant jobs are commented-out. In
# particular:
# - Windows CI
# - separate `build` of LangKit/LAL/ALS/GS
# - testing of GNATdoc/LSIF-Ada/GNATformat/etc
stages:
- build
- test
- check
- downstream:build
- downstream:test
include:
# Issue check
- component: $CI_SERVER_FQDN/eng/gitlab-templates/check-issue@~latest
# Build (stable & edge)
- component: $CI_SERVER_FQDN/eng/gitlab-templates/build@~latest
inputs:
job-name: build:stable:linux
anod-args: run build_stable --latest
save-component: true
- component: $CI_SERVER_FQDN/eng/gitlab-templates/build@~latest
inputs:
job-name: build:edge:linux
anod-args: run build_edge --latest
save-component: true
# - component: $CI_SERVER_FQDN/eng/gitlab-templates/build@~latest
# inputs:
# job-name: build:edge:windows
# anod-args: run build_edge --latest
# cpu:8
# image: e3-windows-core-2022
# save-component: true
# # variables:
# # ACI_TRACK: edge
# services:
# - platform:x86_64-windows-2022
# - image:e3-windows-core-2022
# Testing (stable & edge)
- component: $CI_SERVER_FQDN/eng/gitlab-templates/test@~latest
inputs:
job-name: test:stable:linux
needs: ["build:stable:linux"]
cpus: 2
# --latest should not be used here because it causes Anod to re-download
# components from Cathod instead of using the ones built in this pipeline
# by the build job.
anod-args: run test_stable
- component: $CI_SERVER_FQDN/eng/gitlab-templates/test@~latest
inputs:
job-name: test:edge:linux
needs: ["build:edge:linux"]
cpus: 2
# --latest should not be used here because it causes Anod to re-download
# components from Cathod instead of using the ones built in this pipeline
# by the build job.
anod-args: run test_edge
# Downstream build
- component: $CI_SERVER_FQDN/eng/gitlab-templates/build@~latest
inputs:
stage: downstream:build
needs: ["build:edge:linux"]
job-name: build:edge:linux:prettier-ada
anod-args: run build_edge_prettier_ada
cpus: 16
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: manual
save-component: true
- component: $CI_SERVER_FQDN/eng/gitlab-templates/build@~latest
inputs:
stage: downstream:build
needs: ["build:edge:linux:prettier-ada"]
job-name: build:edge:linux:gnatdoc
anod-args: run build_edge_gnatdoc
cpus: 16
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: manual
save-component: true
- component: $CI_SERVER_FQDN/eng/gitlab-templates/build@~latest
inputs:
stage: downstream:build
needs: ["build:edge:linux:gnatdoc"]
job-name: build:edge:linux:als
anod-args: run build_edge_als
cpus: 16
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: manual
save-component: true
- component: $CI_SERVER_FQDN/eng/gitlab-templates/build@~latest
inputs:
stage: downstream:build
needs: ["build:edge:linux:als"]
job-name: build:edge:linux:gs
anod-args: run build_edge_gs
image: systemgtk
cpus: 16
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: manual
save-component: true
# Downstream testing
- component: $CI_SERVER_FQDN/eng/gitlab-templates/test@~latest
inputs:
stage: downstream:test
needs: ["build:edge:linux:prettier-ada"]
job-name: test:edge:linux:prettier-ada
anod-args: run test_edge_prettier_ada
cpus: 16
- component: $CI_SERVER_FQDN/eng/gitlab-templates/test@~latest
inputs:
stage: downstream:test
needs: ["build:edge:linux:gnatdoc"]
job-name: test:edge:linux:gnatdoc
anod-args: run test_edge_gnatdoc
cpus: 16
- component: $CI_SERVER_FQDN/eng/gitlab-templates/test@~latest
inputs:
stage: downstream:test
needs: ["build:edge:linux:als"]
job-name: test:edge:linux:als
anod-args: run test_edge_als
cpus: 16
- component: $CI_SERVER_FQDN/eng/gitlab-templates/test@~latest
inputs:
stage: downstream:test
needs: ["build:edge:linux:gs"]
job-name: test:edge:linux:gs
anod-args: run test_edge_gs
image: systemgtk
cpus: 16
###########################
# LEGACY BUILD ON WINDOWS #
###########################
.build_and_test:
stage: test
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
script:
- generic_anod_ci
- . /tmp/ci_env.sh
# Build & test using anod
- anod build vss $ACI_TRACK_QUALIFIER --latest
- anod test vss $ACI_TRACK_QUALIFIER --latest
- testsuite_reports
build_and_test:windows:
extends: .build_and_test
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: manual
services:
- image:e3-windows-core-2022
- cpu:8
- platform:x86_64-windows-2022