-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy path.gitlab-ci.yml
80 lines (71 loc) · 2.7 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
workflow:
rules:
- if: $CI_COMMIT_MESSAGE =~ /Transifex autosync/
when: never
- when: always
before_script:
- ln -s $PWD data/xonotic-data.pk3dir
- export MAKEFLAGS=-j$(nproc); echo MAKEFLAGS=$MAKEFLAGS
- export CC="gcc -pipe"
- >
if wget -nv https://beta.xonotic.org/pipeline-bin/gmqcc ; then
export QCC="$PWD/gmqcc"
chmod +x "$QCC"
else
git clone --depth=1 --branch=main https://gitlab.com/xonotic/gmqcc.git gmqcc
make -C gmqcc || exit 1
export QCC="$PWD/gmqcc/gmqcc"
fi
# Makefile: don't complain about lack of tags (fetching them is slow)
- export QCCFLAGS_WATERMARK=gitlab_pipeline
# Makefile: don't compress anything or complain about lack of zip program
- export ZIP=/bin/true
test_compilation_units:
rules:
- changes:
- qcsrc/**/*
stage: test
script:
- >
if ! make test-diff ; then
printf "\e[31m %s \e[0m\n" "Previous script in the pipeline produced a change."
printf "\e[31m %s \e[0m\n" "This is treated as a test failure."
printf "\e[31m %s \e[0m\n" "Please run 'make test-diff' locally"
printf "\e[31m %s \e[0m\n" "and address the changes somehow in a commit."
exit 1
fi
- make test-comp
test_sv_game:
stage: test
script:
- export EXPECT=f5fbfbd04a22e781397cfd14db367419
- qcsrc/tools/sv_game-hashtest.sh
- exit $?
# NOTE: The generated docs are incomplete - they don't contain code behind SVQC CSQC MENUQC GAMEQC ifdefs.
# With them added to PREDEFINED, it would take over half an hour to generate the docs and even then
# they might not be complete. Doxygen doesn't handle #elif and might not understand some QC definitions.
#doxygen: # rename to 'pages' when gitlab.com allows pages to exceed 100MiB
# before_script:
# - ln -s $PWD data/xonotic-data.pk3dir # is this needed?
# - apt-get update
# - apt-get -y install doxygen graphviz
# stage: deploy
# script:
# - cd qcsrc && doxygen
# - mv html ../public
# - mkdir -p ~/.ssh
# - for i in {0..0}; do eval $(printf "echo \$id_rsa_%02d\n" $i) >> ~/.ssh/id_rsa_base64; done
# - base64 --decode ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
# - chmod 600 ~/.ssh/id_rsa
# - echo -e "Host *\n\tStrictHostKeyChecking no\n\tLogLevel ERROR\n" >> ~/.ssh/config
# - git config --global user.name "Gitlab CI"
# - git config --global user.email "<>"
# - git clone --single-branch --depth 1 ${DEPLOY_HOST}:${DEPLOY_REPO} ~/deploy_
# - mkdir ~/deploy && mv ~/deploy_/.git ~/deploy && rm -r ~/deploy_
# - cp -r ../public/* ~/deploy
# - cd ~/deploy && git add -A . && git commit -m "Deploy ${CI_BUILD_REF}" && git push origin gh-pages
# artifacts:
# paths:
# - public
# only:
# - master