stages: - containers - builds - sanity_checks .multilib: &multilib | dpkg_architecture=$(which dpkg-architecture 2>/dev/null || true) rpm=$(which rpm 2>/dev/null || true) if test -x "$dpkg_architecture"; then multilib=$(dpkg-architecture -q DEB_TARGET_MULTIARCH); elif test -x "$rpm"; then multilib=$(rpm --eval '%{_lib}'); fi .native-environment: &native-environment | export VIRT_PREFIX="$HOME/build/libvirt" export PATH="$VIRT_PREFIX/bin:$PATH" export C_INCLUDE_PATH="$VIRT_PREFIX/include" export LD_LIBRARY_PATH="$VIRT_PREFIX/$multilib" export PKG_CONFIG_PATH="$VIRT_PREFIX/$multilib/pkgconfig" export XDG_DATA_DIRS="$VIRT_PREFIX/share:/usr/share:/usr/local/share" export GI_TYPELIB_PATH="$VIRT_PREFIX/$multilib/girepository-1.0" export OSINFO_SYSTEM_DIR="$VIRT_PREFIX/share/osinfo" export MAKEFLAGS="-j $(getconf _NPROCESSORS_ONLN)" export CCACHE_BASEDIR="$(pwd)" export CCACHE_DIR="$CCACHE_BASEDIR/ccache" export CCACHE_MAXSIZE="50M" export PATH="$CCACHE_WRAPPERSDIR:$PATH" .mingw-environment: &mingw-environment | export VIRT_PREFIX="$VIRT_PREFIX/$ABI/sys-root/mingw" export PKG_CONFIG_PATH="$VIRT_PREFIX/lib/pkgconfig" .native_build_job: cache: paths: - ccache key: "$CI_JOB_NAME" script: - *multilib - *native-environment - pushd /tmp/ - git clone https://gitlab.com/libosinfo/osinfo-db.git - cd osinfo-db - mkdir build - cd build - $MAKE -f ../Makefile VPATH=.. - $MAKE -f ../Makefile VPATH=.. check - $MAKE -f ../Makefile VPATH=.. install OSINFO_DB_TARGET="--system" - popd - mkdir build - cd build - meson .. . --prefix=$VIRT_PREFIX --werror - $NINJA - $NINJA install - $NINJA test - $NINJA dist - if test -x /usr/bin/rpmbuild && test "$RPM" != "skip"; then rpmbuild --nodeps --define '_without_mingw 1' -ta meson-dist/*.tar.xz; fi .native_build_job_prebuilt_env: extends: - .native_build_job - .gitlab_native_build_job_prebuilt_env .native_build_job_local_env: extends: - .native_build_job - .gitlab_native_build_job_local_env .cross_build_job: cache: paths: - ccache key: "$CI_JOB_NAME" script: - *multilib - *native-environment - *mingw-environment - mkdir build - cd build - meson .. . $MESON_OPTS --prefix=$VIRT_PREFIX -Denable-gtk-doc=false -Denable-tests=false -Denable-introspection=disabled -Denable-vala=disabled --werror - $NINJA - $NINJA install .cross_build_job_prebuilt_env: extends: - .cross_build_job - .gitlab_cross_build_job_prebuilt_env .cross_build_job_local_env: extends: - .cross_build_job - .gitlab_cross_build_job_local_env include: '/ci/gitlab.yml'