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 - attic watch-store skynet-cache & .build_template: &nix tags: - nix before_script: - *scripts_cache .rules_template: &rules rules: - if: $CI_COMMIT_TAG when: never - changes: - src/**/* - Cargo.* when: always # clippy and fmt are magic # runs on all commits/branches lint-clippy: stage: lint <<: *nix <<: *rules script: - nix --extra-experimental-features "nix-command flakes" build --verbose .#clippy lint-fmt: stage: lint <<: *nix <<: *rules script: - nix --extra-experimental-features "nix-command flakes" build --verbose .#fmt # has to actually compile build: stage: build <<: *nix script: - 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