# copied a good chunk from my bfom config image: rust:latest stages: - lint - build - deploy cache: key: "$CI_JOB_NAME" paths: - target/ # Set any required environment variables here variables: RUST_BACKTRACE: FULL # clippy and fmt are magic # runs on all commits/branches lint-clippy: stage: lint script: - rustup component add clippy - rustc --version - cargo version - cargo clippy rules: - if: $CI_COMMIT_TAG when: never - changes: - src/**/* - cargo.* when: always lint-fmt: stage: lint script: - rustup component add rustfmt - rustc --version - cargo version - cargo fmt -- --check rules: - if: $CI_COMMIT_TAG when: never - changes: - src/**/* - cargo.* when: always # has to actually compile build: stage: build script: - rustc --version - cargo version - cargo build --verbose - RUST_BACKTRACE=1 cargo test --verbose rules: - if: $CI_COMMIT_TAG when: never - changes: - src/**/* - cargo.* when: on_success # from https://docs.gitlab.com/ee/ci/pipelines/multi_project_pipelines.html # so simple to deploy now nixos: stage: deploy variables: PACKAGE_NAME: "skynet_discord_bot" UPDATE_FLAKE: "yes" trigger: compsoc1/skynet/nixos rules: - if: $CI_COMMIT_TAG when: never - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH when: on_success