From 378b6757669988d820642345bb68091e30ea3d88 Mon Sep 17 00:00:00 2001 From: thesimplekid Date: Sun, 1 Sep 2024 22:12:15 +0100 Subject: [PATCH] chore: flake ci --- .github/workflows/ci_flake.yml | 130 +++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 .github/workflows/ci_flake.yml diff --git a/.github/workflows/ci_flake.yml b/.github/workflows/ci_flake.yml new file mode 100644 index 00000000..26e186ae --- /dev/null +++ b/.github/workflows/ci_flake.yml @@ -0,0 +1,130 @@ +on: [push, pull_request] + +name: CI + +jobs: + self-care: + name: Flake self-check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Check Nix flake inputs + uses: DeterminateSystems/flake-checker-action@v7 + with: + fail-mode: true + + pre-commit-checks: + name: "Pre-commit checks: cargo fmt, typos" + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v4 + - name: Install Nix + uses: DeterminateSystems/nix-installer-action@v11 + - name: Nix Cache + uses: DeterminateSystems/magic-nix-cache-action@v6 + - name: Rust Cache + uses: Swatinem/rust-cache@v2 + - name: Pre-commit checks + run: nix develop -i -L .#stable --command pre-commit run --all-files + + clippy: + name: "Stable build, clippy and test" + runs-on: ubuntu-latest + strategy: + matrix: + build-args: + [ + -p cdk, + -p cdk --no-default-features, + -p cdk --no-default-features --features wallet, + -p cdk --no-default-features --features mint, + -p cdk-redb, + -p cdk-sqlite, + -p cdk-axum, + -p cdk-cln, + -p cdk-lnd, + -p cdk-phoenixd, + -p cdk-strike, + -p cdk-lnbits + -p cdk-integration-tests, + -p cdk-fake-wallet, + --bin cdk-cli, + --bin cdk-mintd, + ] + steps: + - name: checkout + uses: actions/checkout@v4 + - name: Install Nix + uses: DeterminateSystems/nix-installer-action@v11 + - name: Nix Cache + uses: DeterminateSystems/magic-nix-cache-action@v6 + - name: Rust Cache + uses: Swatinem/rust-cache@v2 + - name: Build + run: nix develop -i -L .#stable --command cargo build ${{ matrix.build-args }} + - name: Clippy + run: nix develop -i -L .#stable --command cargo clippy ${{ matrix-build-args }} -- -D warnings + - name: Test + run: nix develop -i -L .#stable --command cargo test ${{ matrix.build-args }} + + build-test: + name: "MSRV build and test" + runs-on: ubuntu-latest + strategy: + matrix: + build-args: + [ + -p cdk, + -p cdk --no-default-features, + -p cdk --no-default-features --features wallet, + -p cdk --no-default-features --features mint, + -p cdk-axum, + -p cdk-strike, + -p cdk-lnbits, + -p cdk-phoenixd, + ] + steps: + - name: checkout + uses: actions/checkout@v4 + - name: Install Nix + uses: DeterminateSystems/nix-installer-action@v11 + - name: Nix Cache + uses: DeterminateSystems/magic-nix-cache-action@v6 + - name: Rust Cache + uses: Swatinem/rust-cache@v2 + - name: Build + run: nix develop -i -L .#msrv --command cargo build ${{ matrix.build-args }} + - name: Test + run: nix develop -i -L .#msrv --command cargo test ${{ matrix.build-args }} + + check-wasm: + name: Check WASM + runs-on: ubuntu-latest + strategy: + matrix: + rust: + - msrv + - stable + target: + - wasm32-unknown-unknown + build-args: + [ + -p cdk, + -p cdk --no-default-features, + -p cdk --no-default-features --features wallet, + -p cdk-js + ] + steps: + - name: checkout + uses: actions/checkout@v4 + - name: Install Nix + uses: DeterminateSystems/nix-installer-action@v11 + - name: Nix Cache + uses: DeterminateSystems/magic-nix-cache-action@v6 + - name: Rust Cache + uses: Swatinem/rust-cache@v2 + - name: Check cdk and binding + run: nix develop -i -L ".#${{ matrix.rust }}" --command cargo check ${{ matrix.build-args }} --target ${{ matrix.target }} + - name: Clippy cdk and bindings + run: nix develop -i -L ".#${{ matrix.rust }}" --command cargo build ${{ matrix.build-args }} --target ${{ matrix.target }}