blob: af8c93966093277627fdfd45587add120af00d75 (
plain)
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
|
# Dependencies are managed in the Dockerfile in the inkscape-ci-docker
# Git repository. Change them there, wait a bit, and then we'll use
# the new ones here in these builds.
image: registry.gitlab.com/inkscape/inkscape-ci-docker/master
variables:
GIT_DEPTH: "10"
cache:
paths:
- ccache/
# Building inkscape
inkscape:linux:
stage: build
before_script:
# CCache Config
- mkdir -p ccache
- export CCACHE_BASEDIR=${PWD}
- export CCACHE_DIR=${PWD}/ccache
script:
- mkdir -p build/conf
- ln -s . share/inkscape
- cd build
- cmake .. -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX:PATH=$PWD/install_dir/
- make -j3 install
- make -j3 tests
- cpack -G DEB
- cd ..
artifacts:
expire_in: 1 year
paths:
- build/
inkscape:codequality:
stage: build
script:
- git fetch https://gitlab.com/inkscape/inkscape.git
- git diff FETCH_HEAD -U0 --no-color | clang-format-diff-6.0 -p1 -style file | tee clang_format_diff
- if [[ -s clang_format_diff ]]; then false; fi
allow_failure: true
inkscape:mac:
stage: build
tags:
- mac
only:
- branches@inkscape/inkscape
before_script:
- brew update
- brew upgrade
# Tools
- brew install cmake intltool libtool pkg-config ccache
# Libraries
- brew install bdw-gc boost gdl gettext gsl gtkmm3 gtkspell3 imagemagick@6 jemalloc libcdr libvisio libyaml libwpg pango popt poppler potrace libsoup
# Testing tools
# TODO
# Cleanup
- brew cleanup
# CCache Config
- mkdir -p ccache
- export CCACHE_BASEDIR=${PWD}
- export CCACHE_DIR=${PWD}/ccache
script:
- mkdir -p build
- cd build
- cmake .. -DCMAKE_PREFIX_PATH="/usr/local/opt/gettext;/usr/local/opt/imagemagick@6/;/usr/local/opt/icu4c/" -DWITH_OPENMP=OFF -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=Debug
- make -j1
- cd ..
artifacts:
expire_in: 1 year
paths:
- build/
allow_failure: true
inkscape:doc:
stage: build
only:
- schedules
script:
- cd buildtools
- doxygen Doxyfile
- doxygen Doxyfile-extensions
- cd ..
artifacts:
paths:
- doc/doxygen
- doc/doxygen-extensions
# This job is a static analysis build by clang.
# It takes MORE THAN 3 HOURS, and depending on worker sometimes 4 hours.
# Make sure the timeout of the build is big enough
clang:
stage: build
only:
- schedules
script:
- apt-get update -yqq && apt-get install -y clang
- mkdir -p clang-build
- cd clang-build
- scan-build cmake .. -DCMAKE_BUILD_TYPE=Debug
- VERBOSE=1 scan-build -o ../scan make -j2
artifacts:
paths:
- scan/
test:linux:
stage: test
dependencies:
- inkscape:linux
script:
- cd build
- make test
- ctest -V
# uploads the clang scan to user.gitlab.io/inkscape/
pages:
stage: deploy
dependencies:
- inkscape:doc
- clang
script:
- mkdir -p public/
- sed "s/%DATE%/$(date '+%B %d, %Y')/" buildtools/ci-index.html > public/index.html
- if test -e scan; then cp -rv scan/* public/scan-build; fi
- if test -e doc/doxygen; then cp -rv doc/doxygen/html public/doxygen; fi
- if test -e doc/doxygen-extensions; then cp -rv doc/doxygen-extensions/html public/doxygen-extensions; fi
artifacts:
paths:
- public
only:
- schedules
|