[CI] Move CCache config out of python build script

v0.27.3
Dan Čermák 7 years ago
parent 7d1d10c338
commit 7ac40ba0b2

@ -1,19 +1,32 @@
# default build for all distros # all builds use the same ccache folder in the project root that is cached
# only create artifacts of the build directory when something fails (for cmake logs) variables:
# cache the ccache/ directory for each job separately CCACHE_BASEDIR: '$CI_PROJECT_DIR'
.build_template: &distro_build 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: before_script:
- ci/install_dependencies.sh - 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: script:
- python3 ci/test_build.py - python3 ci/test_build.py
artifacts: artifacts:
when: on_failure when: on_failure
paths: paths:
- build/ - build/
cache:
key: "$CI_JOB_NAME"
paths:
- ccache/
stages: stages:
- test - test
@ -21,33 +34,38 @@ stages:
Fedora: Fedora:
image: fedora:28 image: fedora:28
<<: *default_config
<<: *distro_build <<: *distro_build
Debian: Debian:
image: debian:9 image: debian:9
<<: *default_config
<<: *distro_build <<: *distro_build
Archlinux: Archlinux:
image: base/archlinux image: base/archlinux
<<: *default_config
<<: *distro_build <<: *distro_build
Ubuntu: Ubuntu:
image: ubuntu:18.04 image: ubuntu:18.04
<<: *default_config
<<: *distro_build <<: *distro_build
CentOS: CentOS:
image: centos:7 image: centos:7
<<: *default_config
<<: *distro_build <<: *distro_build
OpenSUSE: OpenSUSE:
image: opensuse:tumbleweed image: opensuse:tumbleweed
<<: *default_config
<<: *distro_build <<: *distro_build
Install: Install:
image: fedora:28 image: fedora:28
stage: deploy stage: deploy
before_script: <<: *default_config
- ci/install_dependencies.sh
script: script:
- mkdir build && cd build - 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 .. - 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 ..

@ -37,10 +37,8 @@ def call_wrapper(*args, **kwargs):
sys.exit(return_code) sys.exit(return_code)
# create build & ccache directory (ccache could already exist in the CI's cache) # create build directory
os.mkdir("build") os.mkdir("build")
if not os.path.exists('ccache'):
os.mkdir("ccache")
root_dir = os.path.abspath(os.getcwd()) root_dir = os.path.abspath(os.getcwd())
@ -64,8 +62,6 @@ for params in itertools.product(SHARED_LIBS, CCS, BUILD_TYPES):
env_copy = os.environ.copy() env_copy = os.environ.copy()
env_copy["CC"] = cc env_copy["CC"] = cc
env_copy["CXX"] = cxx env_copy["CXX"] = cxx
env_copy["CCACHE_BASEDIR"] = root_dir
env_copy["CCACHE_DIR"] = os.path.join(root_dir, "ccache")
# location of the binaries for the new test suite: # location of the binaries for the new test suite:
env_copy["EXIV2_BINDIR"] = os.path.join(cwd, "bin") env_copy["EXIV2_BINDIR"] = os.path.join(cwd, "bin")

Loading…
Cancel
Save