summaryrefslogtreecommitdiffstats
path: root/.gitlab-ci.yml
blob: 640fd71695b3a048aaeeea1a660fcf9223ef0498 (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
# 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
    - cd ..
  artifacts:
    expire_in: 1 year
    paths:
      - build/

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

# 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-3.8 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
  when: manual
  dependencies:
    - clang
  script:
    - if test -e scan; then cp -r scan/* public; fi
  artifacts:
    paths:
      - public
  only:
    - master