mirror of
https://github.com/aljazceru/cdk.git
synced 2025-12-24 16:14:54 +01:00
267 lines
8.1 KiB
YAML
267 lines
8.1 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
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: "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: Cargo fmt
|
|
run: |
|
|
nix develop -i -L .#nightly --command bash -c '
|
|
# Force use of Nix-provided rustfmt
|
|
export RUSTFMT=$(command -v rustfmt)
|
|
cargo fmt --check
|
|
'
|
|
- name: typos
|
|
run: nix develop -i -L .#nightly --command typos
|
|
|
|
clippy:
|
|
name: "Stable build, clippy and test"
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
build-args:
|
|
[
|
|
-p cashu,
|
|
-p cashu --no-default-features,
|
|
-p cashu --no-default-features --features wallet,
|
|
-p cashu --no-default-features --features mint,
|
|
-p cashu --no-default-features --features "mint swagger",
|
|
-p cdk-common,
|
|
-p cdk-common --no-default-features,
|
|
-p cdk-common --no-default-features --features wallet,
|
|
-p cdk-common --no-default-features --features mint,
|
|
-p cdk-common --no-default-features --features "mint swagger",
|
|
-p cdk,
|
|
-p cdk --no-default-features,
|
|
-p cdk --no-default-features --features wallet,
|
|
-p cdk --no-default-features --features mint,
|
|
-p cdk --no-default-features --features "mint swagger",
|
|
-p cdk-redb,
|
|
-p cdk-sqlite,
|
|
-p cdk-axum --no-default-features,
|
|
-p cdk-axum --no-default-features --features swagger,
|
|
-p cdk-axum --no-default-features --features redis,
|
|
-p cdk-axum --no-default-features --features "redis swagger",
|
|
-p cdk-axum,
|
|
-p cdk-cln,
|
|
-p cdk-lnd,
|
|
-p cdk-phoenixd,
|
|
-p cdk-strike,
|
|
-p cdk-lnbits,
|
|
-p cdk-fake-wallet,
|
|
--bin cdk-cli,
|
|
--bin cdk-mintd,
|
|
--bin cdk-mintd --no-default-features --features swagger,
|
|
--bin cdk-mintd --no-default-features --features redis,
|
|
--bin cdk-mintd --no-default-features --features "redis swagger",
|
|
]
|
|
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 }}
|
|
|
|
itest:
|
|
name: "Integration regtest tests"
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
build-args:
|
|
[
|
|
-p cdk-integration-tests,
|
|
]
|
|
database:
|
|
[
|
|
REDB,
|
|
SQLITE,
|
|
MEMORY,
|
|
]
|
|
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: Clippy
|
|
run: nix develop -i -L .#stable --command cargo clippy ${{ matrix.build-args }} -- -D warnings
|
|
- name: Test
|
|
run: nix develop -i -L .#stable --command just itest ${{ matrix.database }}
|
|
|
|
fake-wallet-itest:
|
|
name: "Integration fake wallet tests"
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
build-args:
|
|
[
|
|
-p cdk-integration-tests,
|
|
]
|
|
database:
|
|
[
|
|
REDB,
|
|
SQLITE,
|
|
MEMORY,
|
|
]
|
|
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: Clippy
|
|
run: nix develop -i -L .#stable --command cargo clippy ${{ matrix.build-args }} -- -D warnings
|
|
- name: Test fake mint
|
|
run: nix develop -i -L .#stable --command just fake-mint-itest ${{ matrix.database }}
|
|
|
|
msrv-build:
|
|
name: "MSRV build"
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
build-args:
|
|
[
|
|
-p cashu --no-default-features --features "wallet mint",
|
|
-p cdk-common --no-default-features --features "wallet mint",
|
|
-p cdk --no-default-features --features "mint mint",
|
|
-p cdk-axum,
|
|
-p cdk-axum --no-default-features --features redis,
|
|
-p cdk-strike,
|
|
-p cdk-lnbits,
|
|
-p cdk-phoenixd,
|
|
-p cdk-fake-wallet,
|
|
-p cdk-cln,
|
|
]
|
|
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 }}
|
|
|
|
|
|
db-msrv-build:
|
|
name: "DB MSRV build"
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
build-args:
|
|
[
|
|
-p cdk-sqlite,
|
|
-p cdk-redb,
|
|
]
|
|
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 .#db_shell --command cargo build ${{ matrix.build-args }}
|
|
|
|
check-wasm:
|
|
name: Check WASM
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
rust:
|
|
- stable
|
|
target:
|
|
- wasm32-unknown-unknown
|
|
build-args:
|
|
[
|
|
-p cdk,
|
|
-p cdk --no-default-features,
|
|
-p cdk --no-default-features --features wallet,
|
|
]
|
|
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 cdk and binding
|
|
run: nix develop -i -L ".#${{ matrix.rust }}" --command cargo build ${{ matrix.build-args }} --target ${{ matrix.target }}
|
|
|
|
|
|
check-wasm-msrv:
|
|
name: Check WASM
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
rust:
|
|
- msrv
|
|
target:
|
|
- wasm32-unknown-unknown
|
|
build-args:
|
|
[
|
|
-p cdk,
|
|
-p cdk --no-default-features,
|
|
-p cdk --no-default-features --features wallet,
|
|
]
|
|
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 cdk wasm
|
|
run: nix develop -i -L ".#${{ matrix.rust }}" --command cargo build ${{ matrix.build-args }} --target ${{ matrix.target }}
|