-
Notifications
You must be signed in to change notification settings - Fork 68
Expand file tree
/
Copy path.gitlab-ci.plan
More file actions
123 lines (86 loc) · 3.2 KB
/
.gitlab-ci.plan
File metadata and controls
123 lines (86 loc) · 3.2 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
vscode_qual = {
"mono-plat": True,
"npm-online": True,
"npm-package": True,
}
def build_(qualifier={}):
with defaults(qualifier=qualifier):
anod_build("als")
anod_build("vscode-extension", qualifier=vscode_qual | qualifier)
def test_als_(qualifier={}):
with defaults(qualifier=qualifier):
# Install the component built in the preceding CI build job
anod_install("als")
anod_test("als")
def test_als_cov_(qualifier={}):
with defaults(qualifier=qualifier | {"coverage": True}):
# We don't install 'als' because in coverage mode, 'als' can't be installed and
# has to be built instead.
anod_test("als")
def test_vscode_extension_(qualifier={}):
component_qual = qualifier | vscode_qual
# Install the component built in the preceding CI build job
anod_install("vscode-extension", qualifier=component_qual)
anod_test("vscode-extension", qualifier=component_qual | {"coverage": True})
def build_test_gs_(qualifier={}):
with defaults(qualifier=qualifier):
# Install the component built in the preceding CI build job
anod_install("als")
# Test gps. This will automatically rebuild gps based on the ALS changes
anod_test("gps")
# Edge
edge_qualifier = {"edge": True}
def build_edge():
build_(edge_qualifier)
def test_als_edge():
test_als_(edge_qualifier)
def test_als_cov_edge():
test_als_cov_(edge_qualifier)
def test_vscode_extension_edge():
test_vscode_extension_(edge_qualifier)
def build_test_gs_edge():
build_test_gs_(edge_qualifier)
# Integration testsuite (no edge version)
def test_integration_testsuite(local_vscode_qual=None):
if local_vscode_qual is None:
local_vscode_qual = vscode_qual
# These two components have been built by the build job of the CI, install them.
anod_install("als")
anod_install("vscode-extension", qualifier=local_vscode_qual)
test_int_ts(local_vscode_qual)
def test_int_ts(local_vscode_qual):
# For the following components, we'd like to install with latest=True to be
# resilient to failures in nightly builds.
#
# We need to do this instead of running the whole plan with --latest because
# currently --latest bypasses the local offline Cathod component cache and prevents
# installing components built in the same CI pipeline.
for dep in (
# Install gps component to avoid it getting rebuilt. Here we are only interested
# in vscode tests in the integration-testsuite, not gps.
"gps",
"gnat",
"gnatdas",
"gnatsas",
"spark2014",
):
anod_install(dep, latest=True)
# Run the subset of integration-testsuite that uses VS Code
anod_test(
"integration-testsuite",
qualifier={
"run-tools": "vscode",
"cleanup-mode": "none",
}
| local_vscode_qual,
)
# Offline sentinel
def offline_sentinel():
offline_qual = vscode_qual | {
"npm-online": False,
"npm-package": False,
}
anod_install("als")
anod_build("vscode-extension", qualifier=offline_qual)
anod_test("vscode-extension", qualifier=offline_qual)
test_int_ts(offline_qual)