# copied a good chunk from my bfom config image: rust:latest stages: - lint - build - deploy # Set any required environment variables here variables: RUST_BACKTRACE: FULL .scripts_cache: &scripts_cache - nix --extra-experimental-features 'nix-command flakes' profile install nixpkgs#attic-client - attic login skynet https://nix-cache.skynet.ie/ $CACHE_KEY - attic use skynet-cache # 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 - cargo test --verbose 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 tags: - nix before_script: - *scripts_cache script: - attic watch-store skynet-cache & - nix --extra-experimental-features "nix-command flakes" build --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