64 lines
1.7 KiB
YAML
64 lines
1.7 KiB
YAML
|
name: On_Push
|
||
|
|
||
|
on:
|
||
|
push:
|
||
|
branches:
|
||
|
- 'main'
|
||
|
paths:
|
||
|
- flake.*
|
||
|
- src/**/*
|
||
|
- Cargo.*
|
||
|
- .forgejo/**/*
|
||
|
|
||
|
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
|
||
|
- run: rustc --version
|
||
|
- run: cargo version
|
||
|
- run: cargo fmt -- --check
|
||
|
|
||
|
# clippy is incredibly useful for making yer code better
|
||
|
lint_clippy:
|
||
|
# build it using teh base nixos system, helps with caching
|
||
|
runs-on: docker
|
||
|
container:
|
||
|
image: rust:latest
|
||
|
steps:
|
||
|
# get the repo first
|
||
|
- uses: https://code.forgejo.org/actions/checkout@v4
|
||
|
#- run: rustup component add clippy
|
||
|
- run: rustc --version
|
||
|
- run: cargo version
|
||
|
- run: cargo clippy
|
||
|
- run: cargo test --verbose
|
||
|
- run: nix build --verbose
|
||
|
|
||
|
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 }}
|