You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.4 KiB
YAML
100 lines
2.4 KiB
YAML
# 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
|