diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..4a1c281 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,61 @@ +on: + push: + tags: + - '**' + branches: + - '**' + workflow_dispatch: + +name: CI + +jobs: + checks: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Bootstrap + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + components: rustfmt, clippy + target: x86_64-unknown-linux-gnu + continue-on-error: true + + - name: Update rust + run: | + rustup Update + continue-on-error: true + + - name: Add target + run: | + rustup target add x86_64-unknown-linux-gnu + continue-on-error: true + + - name: Formatting + run: | + cargo fmt --all -- --check + + - name: Lints + run: | + cargo clippy -- --no-deps -D warnings + + - name: Tests + run: | + cargo test --release + + - name: Build + run: | + cargo build + + - name: Bootstrap fly + uses: superfly/flyctl-actions/setup-flyctl@master + if: success() && github.ref == 'refs/heads/main' + + - name: Deploy + run: | + flyctl deploy --remote-only + env: + FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} + if: success() && github.ref == 'refs/heads/main'