--- stages: - test - build - publish default: tests: stage: test image: rust before_script: - rustc --version - cargo --version - rustup component add rustfmt script: - cargo fmt --check - cargo test build:amd64: stage: build image: rust before_script: - rustc --version - cargo --version script: - cargo build --release artifacts: paths: - target/release/immich-tools rustdoc: stage: build image: rust before_script: - rustc --version - cargo --version script: - cargo doc artifacts: paths: - target/doc pages: stage: publish image: alpine dependencies: - build:amd64 - rustdoc script: - mkdir -p public - mv target/doc public/doc - mv target/release/immich-tools public/immich-tools-amd64 artifacts: paths: - public only: - main ...