Skip to content

Commit c039ff3

Browse files
committed
Merge branch 'topic/ci' into 'master'
Initial revision for the anod-based CI See merge request eng/ide/ada_language_server!1126
2 parents 658ba16 + 78ea84b commit c039ff3

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

.gitlab-ci.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
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}
4+
5+
stages:
6+
- build_and_test
7+
8+
9+
# Build and test with ANOD
10+
# TODO: add a build and test based on Alire in parallel to this.
11+
build_and_test:
12+
services:
13+
- image:sandbox
14+
- cpu:8
15+
- mem:16
16+
stage: build_and_test
17+
script:
18+
- . ~/.aws_container_credentials
19+
- export PATH=/it/e3/bin:$PATH
20+
21+
# Setup the 'anod vcs' for this repo
22+
- cd /it/wave
23+
- anod vcs --add-repo ada_language_server $CI_PROJECT_DIR
24+
25+
# Figure out if we're on a sync branch
26+
- BRANCH=master
27+
- if [[ $CI_COMMIT_BRANCH =~ ^sync/ ]]; then
28+
BRANCH=$CI_COMMIT_BRANCH;
29+
elif [[ $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ ^sync/ ]]; then
30+
BRANCH=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME;
31+
fi
32+
33+
# Setup the 'anod vcs' for the other repos, if we're on
34+
# a "sync" branch.
35+
- if [ $BRANCH != master ]; then
36+
for subproject in vss spawn gnatdoc ; do
37+
cd /tmp ;
38+
git clone $GIT_CLONE_BASE/eng/ide/$subproject ;
39+
cd $subproject ;
40+
if `git show-ref $BRANCH > /dev/null` ; then
41+
git checkout $BRANCH ;
42+
cd /it/wave ;
43+
anod vcs --add-repo $subproject /tmp/$subproject ;
44+
fi ;
45+
done ;
46+
fi
47+
48+
# Build & test using anod
49+
- cd /it/wave
50+
- anod build als --minimal
51+
- anod test als --minimal
52+
53+
# Process the report
54+
- e3-testsuite-report
55+
--failure-exit-code 1
56+
--xunit-output $CI_PROJECT_DIR/xunit_output.xml
57+
x86_64-linux/als-test/results/new/ || FAILED=true
58+
59+
- if [ ! -z ${FAILED+x} ]; then echo "There was at least one testcase failure" && exit 1; fi
60+
61+
artifacts:
62+
paths:
63+
- xunit_output.xml
64+
reports:
65+
junit: xunit_output.xml

0 commit comments

Comments
 (0)