Loupe/.gitlab-ci.yml
2025-01-07 21:36:18 +01:00

164 lines
4.8 KiB
YAML

include:
- project: "GNOME/citemplates"
file: "flatpak/flatpak_ci_initiative.yml"
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
dist-job-name: "flatpak"
tarball-artifact-path: "${TARBALL_ARTIFACT_PATH}"
variables:
FLATPAK_MODULE: 'gnome-font-viewer'
variables:
BUNDLE: "org.gnome.Loupe.Devel.flatpak"
MANIFEST_PATH: "build-aux/flatpak/org.gnome.Loupe.Devel.json"
FLATPAK_MODULE: "loupe"
APP_ID: "org.gnome.Loupe.Devel"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
TARBALL_ARTIFACT_PATH: ".flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
flatpak:
extends: ".flatpak@x86_64"
interruptible: true
variables:
# We are running tests manually
RUN_TESTS: "0"
CONFIG_OPTS: "-Dprofile=release -Dapp_id_suffix=.Devel"
flatpak@aarch64:
extends: ".flatpak@aarch64"
allow_failure: true
interruptible: true
variables:
RUN_TESTS: "0"
CONFIG_OPTS: "-Dprofile=release -Dapp_id_suffix=.Devel"
cargo-fmt:
image: "rust:slim"
interruptible: true
script:
- rustup component add rustfmt
- rustc -Vv && cargo -Vv
- cargo fmt --version
- cargo fmt --all -- --check
cargo-doc:
image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master'
interruptible: true
tags:
- flatpak
artifacts:
name: 'Code Documentation'
paths:
- doc
script:
# Report the installed versions of the runtime
- flatpak info org.gnome.Platform
- flatpak info org.gnome.Sdk
# Print the date, since appstream depends on local timezone
- date && date -u
- rewrite-flatpak-manifest ${MANIFEST_PATH} ${FLATPAK_MODULE} ${CONFIG_OPTS}
- flatpak-builder --user --disable-rofiles-fuse --force-clean --keep-build-dirs --stop-at=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH}
- flatpak build-finish --socket=x11 --share=network flatpak_app
- >
xvfb-run -a -s "-screen 0 1024x768x24"
flatpak-builder --user --disable-rofiles-fuse --build-shell=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH} <<END
ninja src/doc
END
- cp -r .flatpak-builder/build/${FLATPAK_MODULE}/_flatpak_build/src/doc doc
- chmod -R a=rwx doc
cargo-clippy:
image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master'
interruptible: true
tags:
- flatpak
script:
# Report the installed versions of the runtime
- flatpak info org.gnome.Platform
- flatpak info org.gnome.Sdk
# Print the date, since appstream depends on local timezone
- date && date -u
- rewrite-flatpak-manifest ${MANIFEST_PATH} ${FLATPAK_MODULE} ${CONFIG_OPTS}
- flatpak-builder --user --disable-rofiles-fuse --force-clean --keep-build-dirs --stop-at=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH}
- flatpak build-finish --socket=x11 --share=network flatpak_app
- >
xvfb-run -a -s "-screen 0 1024x768x24"
flatpak-builder --user --disable-rofiles-fuse --build-shell=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH} <<END
cargo clippy -- -D warnings
END
cargo-test:
image: 'quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master'
interruptible: true
tags:
- flatpak
script:
# Report the installed versions of the runtime
- flatpak info org.gnome.Platform
- flatpak info org.gnome.Sdk
# Print the date, since appstream depends on local timezone
- date && date -u
- rewrite-flatpak-manifest ${MANIFEST_PATH} ${FLATPAK_MODULE} ${CONFIG_OPTS}
- flatpak-builder --user --disable-rofiles-fuse --force-clean --keep-build-dirs --stop-at=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH}
- flatpak build-finish --socket=x11 --share=network flatpak_app
- >
xvfb-run -a -s "-screen 0 1024x768x24"
flatpak-builder --user --disable-rofiles-fuse --build-shell=${FLATPAK_MODULE} flatpak_app ${MANIFEST_PATH} <<END
cargo test
END
cargo-audit:
interruptible: true
image: rust
script:
- cargo install cargo-deny --locked
- cargo deny check
cargo-vet:
image: "rust:slim"
allow_failure: true
interruptible: true
script:
- rustup component add rustfmt
- cargo install cargo-vet
- CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu cargo vet
other-checks:
interruptible: true
image: alpine
script:
- apk add --no-cache git
- git ls-files 'src/*.rs' 'src/*.ui' 'data/*.ui' 'data/*.desktop.in*' '*.gschema.xml.in' '*.metainfo.xml.in*' > po/POTFILES.in
- git diff --exit-code
pages:
stage: deploy
dependencies:
- cargo-doc
script:
- mkdir public
- mv doc public
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
nightly:
extends: ".publish_nightly"
stage: deploy
dependencies:
- flatpak
nightly@aarch64:
extends: ".publish_nightly"
stage: deploy
dependencies:
- flatpak@aarch64