Loupe/.gitlab-ci.yml
Christopher Davis 5bcf534142 build: Add ci profile that uses --release
As we add more rust crates in performance-critical places,
we run into some performance issues with debug builds.
This makes it hard to get a good feel for the performance
of the application, as something may be slow simply because
it's not been optimized by the compiler.

This commit adds a ci profile to our meson options,
and adjusts our CI configuration to use it. Regular
builds should continue to use the development profile.

Also renames `default` to `release`
2023-03-01 13:05:19 -05:00

99 lines
2.8 KiB
YAML

include:
- project: "GNOME/citemplates"
file: "flatpak/flatpak_ci_initiative.yml"
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"
CONFIG_OPTS: "-Dprofile=ci"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
flatpak:
extends: ".flatpak@x86_64"
flatpak@aarch64:
allow_failure: true
extends: ".flatpak@aarch64"
cargo-fmt:
image: "rust:slim"
script:
- rustup component add rustfmt
# Create blank versions of our configured files
# so rustfmt does not yell about non-existent files or completely empty files
- echo -e "" >> src/config.rs
- 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 --build-only 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 --build-only 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-audit:
interruptible: true
image: rust
script:
- cargo install cargo-deny
- cargo deny check
pages:
stage: deploy
tags:
- flatpak
script:
- mkdir public
- mv doc public
artifacts:
paths:
- 'public'
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH