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`
99 lines
2.8 KiB
YAML
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
|