forked from Exiv2/exiv2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
105 lines (92 loc) · 2.46 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
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
# all builds use the same ccache folder in the project root that is cached
variables:
CCACHE_BASEDIR: '$CI_PROJECT_DIR'
CCACHE_DIR: '$CI_PROJECT_DIR/ccache'
# default config for all distros:
# - install dependencies via script
# - create ccache dir & setup caching of it (for each job separately)
.build_config: &default_config
before_script:
- ci/install_dependencies.sh
- mkdir -p ccache
cache:
key: "$CI_JOB_NAME"
paths:
- ccache/
# default build job:
# - run build script
# - only create artifacts of the build directory when something fails
# (for cmake logs)
.build_template: &distro_build
script:
- PROFILE=~/.bash_profile && test -f $PROFILE && source $PROFILE
- python3 ci/test_build.py
artifacts:
when: on_failure
paths:
- build/
stages:
- test
- deploy
Fedora:
image: fedora:29
<<: *default_config
<<: *distro_build
Fedora_MinGW:
image: fedora:29
before_script:
- dnf -y upgrade
- dnf -y install mingw64-gcc-c++ mingw64-filesystem mingw64-expat mingw64-zlib cmake make
script:
- python3 ci/test_build.py --without-tests --cmake-executable "mingw64-cmake" --cmake-options "-DEXIV2_TEAM_EXTRA_WARNINGS=ON -DEXIV2_ENABLE_VIDEO=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_WIN_UNICODE=ON " --compilers --shared-libs OFF
Debian:
image: debian:9
<<: *default_config
<<: *distro_build
Archlinux:
image: archlinux/base
<<: *default_config
<<: *distro_build
Ubuntu:
image: ubuntu:18.10
<<: *default_config
<<: *distro_build
CentOS:
image: centos:7
<<: *default_config
<<: *distro_build
OpenSUSE:
image: opensuse/tumbleweed
<<: *default_config
<<: *distro_build
Alpine:
image: alpine:3.9
<<: *default_config
<<: *distro_build
Install:
image: fedora:29
stage: deploy
<<: *default_config
script:
- mkdir build && cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DEXIV2_ENABLE_VIDEO=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DCMAKE_INSTALL_PREFIX=/usr/ -DBUILD_WITH_CCACHE=ON ..
- make -j $(nproc)
- make install
- make clean
- EXIV2_BINDIR=/usr/bin/ make tests
pages:
image: fedora:29
stage: deploy
<<: *default_config
script:
- dnf -y install doxygen graphviz
- mkdir build && cd build
- cmake -DCMAKE_BUILD_TYPE=Release -DEXIV2_ENABLE_VIDEO=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_BUILD_DOC=ON ..
- make doc
- cd ..
- mv build/doc/html/ public/
artifacts:
paths:
- public
only:
- master