File: .gitlab-ci.yml

package info (click to toggle)
exiv2 0.27.3-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 54,956 kB
  • sloc: cpp: 80,713; python: 4,360; sh: 1,497; makefile: 320; javascript: 237; awk: 92; ansic: 78; sed: 16
file content (99 lines) | stat: -rw-r--r-- 2,392 bytes parent folder | download
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
# 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:
    - python3 ci/test_build.py
  artifacts:
    when: on_failure
    paths:
      - build/

stages:
  - test
  - deploy

Fedora:
  image: fedora:latest
  <<: *default_config
  <<: *distro_build

Fedora_MinGW:
  image: fedora:latest
  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.04
  <<: *default_config
  <<: *distro_build

CentOS:
  image: centos:7
  <<: *default_config
  <<: *distro_build

OpenSUSE:
  image: opensuse/tumbleweed
  <<: *default_config
  <<: *distro_build

Install:
  image: fedora:latest
  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:latest
  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