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
|
image: ubuntu:24.04
stages:
- build
- release
variables:
MESON_BUILD_DIR: "_build"
TARBALL_ARTIFACT_PATH: "${MESON_BUILD_DIR}/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
UBUNTU_DEPS:
appstream-util
desktop-file-utils
build-essential
meson
flex
yelp-tools
libexiv2-dev
libgsf-1-dev
libgtk-3-dev
libpoppler-glib-dev
libsmbclient-dev
libtag1-dev
libunique-dev
libgtest-dev
include:
- component: "gitlab.gnome.org/GNOME/citemplates/release-service@master"
inputs:
job-stage: release
dist-job-name: "create_tarball"
tarball-artifact-path: "${TARBALL_ARTIFACT_PATH}"
build_and_test:
stage: build
script:
- export DEBIAN_FRONTEND=noninteractive
- apt-get update -qq
- apt-get install -y $UBUNTU_DEPS xvfb
- mkdir ${MESON_BUILD_DIR}
- meson setup ${MESON_BUILD_DIR}
- meson compile -C ${MESON_BUILD_DIR}
- exit_code=0
- xvfb-run meson test -C ${MESON_BUILD_DIR} || exit_code=$?; if [ "$exit_code" != "0" ]; then echo "Unit tests failed."; cat ${MESON_BUILD_DIR}/meson-logs/testlog.txt; exit 1; fi;
create_tarball:
stage: release
script:
- export DEBIAN_FRONTEND=noninteractive
- apt-get update -qq
- apt-get install -y $UBUNTU_DEPS git-core
- mkdir ${MESON_BUILD_DIR}
- meson setup ${MESON_BUILD_DIR}
- meson compile -C ${MESON_BUILD_DIR}
- meson dist -C ${MESON_BUILD_DIR} --no-tests
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: "always"
paths:
- "${TARBALL_ARTIFACT_PATH}"
rules:
- if: $CI_COMMIT_TAG
|