1
1
variables :
2
- # The common part of the URL for cloning from within a CI
3
- GIT_CLONE_BASE : https://gitlab-ci-token:${CI_JOB_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}
2
+ # The common part of the URL for cloning from within a CI
3
+ GIT_CLONE_BASE : https://gitlab-ci-token:${CI_JOB_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}
4
4
5
5
stages :
6
6
- build_and_test
7
7
- run_downstream_ci
8
8
9
9
.basic-setup :
10
- # Temporary: clone the specific branch of ci-fragments
11
- # TODO: remove the next 4 lines when this version of ci-fragments is available in the image
12
- - cd /tmp
13
- - git clone $GIT_CLONE_BASE/eng/it/ci-fragments -b topic/generic_ci_phase_2 --depth 1
14
- - export PATH=/tmp/ci-fragments:$PATH
15
- - cd -
16
- # Use generic_anod_ci here.
17
- - generic_anod_ci
18
- - cat /tmp/ci_env.sh
19
- - . /tmp/ci_env.sh
10
+ # Temporary: clone the specific branch of ci-fragments
11
+ # TODO: remove the next 4 lines when this version of ci-fragments is available in the image
12
+ - cd /tmp
13
+ - git clone $GIT_CLONE_BASE/eng/it/ci-fragments -b topic/generic_ci_phase_2 --depth 1
14
+ - export PATH=/tmp/ci-fragments:$PATH
15
+ - cd -
16
+ # Use generic_anod_ci here.
17
+ - generic_anod_ci
18
+ - cat /tmp/ci_env.sh
19
+ - . /tmp/ci_env.sh
20
20
21
21
# Build and test with ANOD
22
22
# TODO: add a build and test based on Alire in parallel to this.
23
23
build_and_test :
24
24
services :
25
- - image:sandbox
26
- - cpu:8
27
- - mem:16
25
+ - image:systemgtk
26
+ - cpu:8
27
+ - mem:16
28
+ - run_as_root:false
28
29
stage : build_and_test
29
30
interruptible : true
30
31
rules :
@@ -35,49 +36,77 @@ build_and_test:
35
36
script :
36
37
- !reference [.basic-setup]
37
38
38
- # Build & test using anod
39
+ - echo -e "\e[0Ksection_start:`date +%s`:build_als[collapsed=true]\r\e[0Kanod build als"
39
40
- anod build als $ACI_TRACK_QUALIFIER --minimal
41
+ - echo -e "\e[0Ksection_end:`date +%s`:build_als\r\e[0K"
40
42
43
+ - echo -e "\e[0Ksection_start:`date +%s`:build_vscode[collapsed=true]\r\e[0Kanod build vscode-extension"
41
44
# We pass --latest here because the vscode-extension will try to download
42
45
# the Windows binary (it's a multi-platform extension), and this binary
43
46
# might not be available right away.
44
47
- anod build vscode-extension $ACI_TRACK_QUALIFIER --minimal --latest
48
+ - echo -e "\e[0Ksection_end:`date +%s`:build_vscode\r\e[0K"
49
+
50
+ - echo -e "\e[0Ksection_start:`date +%s`:test_als[collapsed=true]\r\e[0Kanod test als"
51
+ # Run ALS tests
45
52
- anod test als $ACI_TRACK_QUALIFIER --minimal
46
53
47
54
# TODO: it would be nice to have a simpler way of getting this info
48
- - BUILD_SPACE=`anod eval als --primitive test build_space_name $ACI_TRACK_QUALIFIER | tr -d "'"`
49
- - SB_BASE=$ANOD_DEFAULT_SANDBOX_DIR/x86_64-linux/$BUILD_SPACE
55
+ - ALS_BUILD_SPACE_NAME=`anod eval als --primitive test build_space_name $ACI_TRACK_QUALIFIER | tr -d "'"`
56
+ - ALS_BUILD_SPACE=$ANOD_DEFAULT_SANDBOX_DIR/x86_64-linux/$ALS_BUILD_SPACE_NAME
57
+ - echo -e "\e[0Ksection_end:`date +%s`:test_als\r\e[0K"
50
58
51
- # Process the report
52
- - e3-testsuite-report
53
- --failure-exit-code 1
54
- --xunit-output $CI_PROJECT_DIR/xunit_output.xml
55
- $SB_BASE/results/new/ || FAILED=true
59
+ - echo -e "\e[0Ksection_start:`date +%s`:test_vscode[collapsed=true]\r\e[0Kanod test vscode-extension"
60
+ # Run VSCode tests
61
+ - anod test vscode-extension --qualifier=$ACI_TRACK_QUALIFIER --minimal
62
+ - VSCODE_BUILD_SPACE_NAME=`anod eval --primitive test --qualifier=$ACI_TRACK_QUALIFIER vscode-extension build_space_name | tr -d "'"`
63
+ - VSCODE_BUILD_SPACE=$ANOD_DEFAULT_SANDBOX_DIR/x86_64-linux/$VSCODE_BUILD_SPACE_NAME
64
+ - echo -e "\e[0Ksection_end:`date +%s`:test_vscode\r\e[0K"
56
65
66
+ - echo -e "\e[0Ksection_start:`date +%s`:lsif[collapsed=true]\r\e[0KBuild lsif report"
57
67
# Build the lsif report
58
68
- anod install lsif-ada
59
69
- ( cd $ANOD_DEFAULT_SANDBOX_DIR ;
60
- eval `anod printenv lsif-ada`;
61
- eval `anod printenv stable-gnat`;
62
- eval `anod printenv ada_libfswatch`;
63
- eval `anod printenv stable-templates_parser`;
64
- eval `anod printenv stable-langkit_support`;
65
- eval `anod printenv stable-libgpr2 --qualifier=bare`;
66
- eval `anod printenv stable-libadalang`;
67
- eval `anod printenv stable-libadalang-tools`;
68
- export GPR_PROJECT_PATH=` pwd `/x86_64-linux/als/src/subprojects/gnatdoc/gnat:$GPR_PROJECT_PATH;
69
- export GPR_PROJECT_PATH=` pwd `/x86_64-linux/als/src/subprojects/VSS/gnat:$GPR_PROJECT_PATH;
70
- cd $ANOD_DEFAULT_SANDBOX_DIR/x86_64-linux/als/src;
71
- lsif-ada gnat/lsp_server.gpr > $CI_PROJECT_DIR/dump.lsif 2>/dev/null ||
72
- touch $CI_PROJECT_DIR/dump.lsif )
70
+ eval `anod printenv lsif-ada`;
71
+ eval `anod printenv stable-gnat`;
72
+ eval `anod printenv ada_libfswatch`;
73
+ eval `anod printenv stable-templates_parser`;
74
+ eval `anod printenv stable-langkit_support`;
75
+ eval `anod printenv stable-libgpr2 --qualifier=bare`;
76
+ eval `anod printenv stable-libadalang`;
77
+ eval `anod printenv stable-libadalang-tools`;
78
+ export GPR_PROJECT_PATH=` pwd `/x86_64-linux/als/src/subprojects/gnatdoc/gnat:$GPR_PROJECT_PATH;
79
+ export GPR_PROJECT_PATH=` pwd `/x86_64-linux/als/src/subprojects/VSS/gnat:$GPR_PROJECT_PATH;
80
+ cd $ANOD_DEFAULT_SANDBOX_DIR/x86_64-linux/als/src;
81
+ lsif-ada gnat/lsp_server.gpr > $CI_PROJECT_DIR/dump.lsif 2>/dev/null ||
82
+ touch $CI_PROJECT_DIR/dump.lsif )
83
+ - echo -e "\e[0Ksection_end:`date +%s`:lsif\r\e[0K"
84
+
85
+ # Job artifacts must be produced in the project directory, so we do it at
86
+ # the end of the job to avoid changing Anod checkouts halfway through the
87
+ # job and triggering useless rebuilds.
88
+ - echo -e "\e[0Ksection_start:`date +%s`:prepare_artifacts[collapsed=true]\r\e[0KPrepare job artifacts"
89
+ # Process the als test report
90
+ - e3-testsuite-report
91
+ --failure-exit-code 1
92
+ --xunit-output $CI_PROJECT_DIR/als_xunit_output.xml
93
+ $ALS_BUILD_SPACE/results/new/ || FAILED=true
94
+ # Process the vscode-extension test report
95
+ - e3-testsuite-report
96
+ --failure-exit-code 1
97
+ --xunit-output $CI_PROJECT_DIR/vscode_xunit_output.xml
98
+ $VSCODE_BUILD_SPACE/results/new/ || FAILED=true
99
+ # Include Anod logs
100
+ - cp -r $ANOD_DEFAULT_SANDBOX_DIR/log $CI_PROJECT_DIR/anod-logs
101
+ - echo -e "\e[0Ksection_end:`date +%s`:prepare_artifacts\r\e[0K"
73
102
74
103
- if [ ! -z ${FAILED+x} ]; then echo "There was at least one testcase failure" && exit 1; fi
75
104
76
105
artifacts :
77
- when : always # Upload on errors too
78
- reports :
79
- junit : xunit_output .xml
80
- lsif : dump.lsif
106
+ when : always # Upload on errors too
107
+ reports :
108
+ junit : [als_xunit_output .xml, vscode_xunit_output.xml]
109
+ lsif : dump.lsif
81
110
82
111
.run_ci_common : &run_ci_common
83
112
stage : run_downstream_ci
0 commit comments