diff --git a/.forgejo/workflows/push.yaml b/.forgejo/workflows/push.yaml new file mode 100644 index 0000000..4654489 --- /dev/null +++ b/.forgejo/workflows/push.yaml @@ -0,0 +1,63 @@ +name: On_Push + +on: + push: + branches: + - 'main' + paths: + - flake.* + - src/**/* + - Cargo.* + - .forgejo/**/* + - rust-toolchain.toml + +jobs: + # rust code must be formatted for standardisation + lint_fmt: + # build it using teh base nixos system, helps with caching + runs-on: docker + steps: + # get the repo first + - uses: https://code.forgejo.org/actions/checkout@v4 + - uses: https://github.com/actions-rust-lang/setup-rust-toolchain@v1 + with: + components: rustfmt + cache: false + - uses: https://github.com/actions-rust-lang/rustfmt@v1 + + # clippy is incredibly useful for making yer code better + lint_clippy: + # build it using teh base nixos system, helps with caching + runs-on: docker + permissions: + checks: write + steps: + # get the repo first + - uses: https://code.forgejo.org/actions/checkout@v4 + - uses: https://github.com/actions-rust-lang/setup-rust-toolchain@v1 + with: + components: clippy + cache: false + - run: cargo clippy + + build: + # build it using teh base nixos system, helps with caching + runs-on: nix + needs: [ lint_fmt, lint_clippy ] + steps: + # get the repo first + - uses: https://code.forgejo.org/actions/checkout@v4 + - name: "Build it locally" + run: nix build --verbose + + # deploy it upstream + deploy: + # runs on teh default docker container + runs-on: docker + needs: [ build ] + steps: + - name: "Deploy to Skynet" + uses: https://forgejo.skynet.ie/Skynet/actions-deploy-to-skynet@v2 + with: + input: 'skynet_discord_bot' + token: ${{ secrets.API_TOKEN_FORGEJO }} \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 8fac8f5..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,88 +0,0 @@ -# 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 - - - - - diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..6c548fa --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.69.0" \ No newline at end of file