Files
librsvg/ci/container_builds.yml

157 lines
5.0 KiB
YAML

# The following includes are for the CI templates that are used as a
# base to construct our container images. They need to be updated periodically, but
# not frequently, by pointing them to a more recent commit.
include:
- remote: "https://gitlab.gnome.org/Infrastructure/freedesktop-ci-templates/-/raw/a4eb2bbf65c482f024cae7ee178b8fe0cfef0537/templates/opensuse.yml"
- remote: "https://gitlab.freedesktop.org/alatiera/ci-templates/-/raw/104fbc7115a99a450ba926d2a96208457d77cac0/templates/gnomeos.yml"
# IMPORTANT: See
# https://gnome.pages.gitlab.gnome.org/librsvg/devel-docs/ci.html#container-image-version
variables:
BASE_TAG: "2026-03-27.2-main"
RUST_STABLE: "1.92.0"
RUST_MINIMUM: "1.92.0"
RUST_NIGHTLY: "nightly"
RUSTUP_VERSION: "1.28.0"
GNOMEOS_STABLE: "core-50"
# This bunch of packages are the system's C/C++ compilers, and the indirect dependencies needed
# to build librsvg's direct dependencies. E.g. we must build cairo from a git tag, but we don't
# care about libpng too much and so use it as a system library.
.container.opensuse@common:
stage: "container-build"
before_script:
- source ./ci/env.sh
variables:
FDO_DISTRIBUTION_VERSION: "tumbleweed"
FDO_UPSTREAM_REPO: "gnome/librsvg"
FDO_DISTRIBUTION_PACKAGES: >-
autoconf
automake
bison
clang
clang-tools
curl
dav1d-devel
diffutils
findutils
flex
gawk
gcc
gcc-c++
gdb
gettext
gettext-tools
git
gobject-introspection-devel
google-roboto-fonts
gperf
itstool
libbrotli-devel
libbz2-devel
libexpat-devel
libffi-devel
libjson-c-devel
libpng-devel
libstdc++-devel
libtool
libuuid-devel
make
meson
openssl-devel
pcre2-devel
python3-pip
python3-devel
shadow
shared-mime-info
ShellCheck
system-group-wheel
vala
wget
xz
zlib-devel
.container.opensuse@x86_64.stable:
extends: .container.opensuse@common
variables:
FDO_DISTRIBUTION_TAG: "x86_64-${RUST_STABLE}-${BASE_TAG}"
FDO_DISTRIBUTION_EXEC: >-
bash ci/install-python-tools.sh &&
bash ci/install-rust.sh --rustup-version ${RUSTUP_VERSION} \
--stable ${RUST_STABLE} \
--minimum ${RUST_MINIMUM} \
--nightly ${RUST_NIGHTLY} \
--arch x86_64-unknown-linux-gnu &&
bash ci/install-cargo-cbuild.sh &&
bash ci/install-rust-linters.sh &&
bash ci/install-grcov.sh &&
mkdir -p /usr/local/librsvg &&
bash ci/build-dependencies.sh --prefix /usr/local/librsvg --meson-flags "--buildtype=release" &&
rm -rf /root/.cargo /root/.cache # cleanup compilation dirs; binaries are installed now
.container.opensuse@aarch64:
extends: .container.opensuse@common
variables:
FDO_DISTRIBUTION_TAG: "aarch64-${RUST_STABLE}-${BASE_TAG}"
FDO_DISTRIBUTION_EXEC: >-
bash ci/install-rust.sh --rustup-version ${RUSTUP_VERSION} \
--stable ${RUST_STABLE} \
--arch aarch64-unknown-linux-gnu &&
mkdir -p /usr/local/librsvg &&
bash ci/build-dependencies.sh --prefix /usr/local/librsvg --meson-flags "--buildtype=release" &&
rm -rf /root/.cargo /root/.cache # cleanup compilation dirs; binaries are installed now
tags:
- aarch64
opensuse-container@x86_64.stable:
extends:
- .fdo.container-build@opensuse@x86_64
- .container.opensuse@x86_64.stable
stage: "container-build"
opensuse-container@aarch64:
extends:
- .fdo.container-build@opensuse@aarch64
- .container.opensuse@aarch64
stage: "container-build"
.container.gnomeos@common:
stage: "container-build"
before_script:
- cat /etc/os-release
- source ./ci/env.sh
variables:
RUST_VERSION: "${RUST_STABLE}"
FDO_UPSTREAM_REPO: "gnome/librsvg"
FDO_DISTRIBUTION_EXEC: >-
bash ci/install-python-tools.sh &&
bash ci/install-rust.sh --rustup-version ${RUSTUP_VERSION} \
--stable ${RUST_STABLE} \
--arch x86_64-unknown-linux-gnu &&
bash ci/install-cargo-cbuild.sh &&
rm -rf /root/.cargo /root/.cache # cleanup compilation dirs; binaries are installed now
.container.gnomeos.nightly@x86_64:
extends: .container.gnomeos@common
variables:
FDO_DISTRIBUTION_TAG: "x86_64-${RUST_STABLE}-${BASE_TAG}"
FDO_DISTRIBUTION_VERSION: "core-nightly"
.container.gnomeos.stable@x86_64:
extends: .container.gnomeos@common
variables:
FDO_DISTRIBUTION_TAG: "x86_64-${RUST_STABLE}-${BASE_TAG}"
FDO_DISTRIBUTION_VERSION: "$GNOMEOS_STABLE"
gnomeos-container.nightly@x86_64:
extends:
- .fdo.container-build@gnomeos@x86_64
- .container.gnomeos.nightly@x86_64
stage: "container-build"
gnomeos-container.stable@x86_64:
extends:
- .fdo.container-build@gnomeos@x86_64
- .container.gnomeos.stable@x86_64
stage: "container-build"