fractal/.gitlab-ci.yml

75 lines
1.9 KiB
YAML

stages:
- test
- lint
variables:
RUST_BACKTRACE: "FULL"
CARGO_HOME: $CI_PROJECT_DIR/cargo
before_script:
- apt-get update -yqq
- apt-get install -yqq --no-install-recommends build-essential
- apt-get install -yqq --no-install-recommends libgtk-3-dev
- apt-get install -yqq libgmp-dev
# - apt-get install -yqq --no-install-recommends meson
test:stable:
# Stable img
# https://hub.docker.com/_/rust/
image: "rust"
script:
- rustc --version && cargo --version
# Force regeneration of gresources regardless of artifacts chage
- cd fractal-gtk/resources/ && glib-compile-resources --generate resources.xml && cd ../../
- cargo build --all
- cargo test --all --verbose
cache:
paths:
- target/
- cargo/
test:nightly:
# Nightly
# https://hub.docker.com/r/rustlang/rust/
image: "rustlang/rust:nightly"
script:
- rustc --version && cargo --version
# Force regeneration of gresources regardless of artifacts chage
- cd fractal-gtk/resources/ && glib-compile-resources --generate resources.xml && cd ../../
- cargo build --all
- cargo test --all --verbose
# - cargo bench
cache:
paths:
- target/
- cargo/
# Configure and run rustfmt on nightly
# Exits and builds fails on bad format
lint:rustfmt:
image: "rustlang/rust:nightly"
script:
- rustc --version && cargo --version
- cargo install rustfmt-nightly
- cargo fmt --all -- --write-mode=diff
cache:
paths:
- target/
- cargo/
allow_failure: true
# Configure and run clippy on nightly
# Only fails on errors atm.
lint:clippy:
image: "rustlang/rust:nightly"
script:
- rustc --version && cargo --version
# Force regeneration of gresources regardless of artifacts chage
- cd fractal-gtk/resources/ && glib-compile-resources --generate resources.xml && cd ../../
- cargo install clippy
- cargo clippy --all
cache:
paths:
- target/
- cargo/
allow_failure: true