diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..4d2049c --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,86 @@ +# 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 + + + + +