| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496 | 
							- name: CI
 
- on:
 
-   push:
 
-     branches: [main]
 
-   pull_request:
 
-     branches: [main]
 
-   release:
 
-     types: [created]
 
- env:
 
-   CARGO_TERM_COLOR: always
 
- jobs:
 
-   pre-commit-checks:
 
-     name: "Cargo fmt, typos"
 
-     runs-on: ubuntu-latest
 
-     timeout-minutes: 30
 
-     steps:
 
-       - name: checkout
 
-         uses: actions/checkout@v4
 
-       - name: Install Nix
 
-         uses: DeterminateSystems/nix-installer-action@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "nightly"
 
-       - 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
 
-   
 
-   examples:
 
-     name: "Run examples"
 
-     runs-on: ubuntu-latest
 
-     timeout-minutes: 30
 
-     needs: pre-commit-checks
 
-     strategy:
 
-       matrix:
 
-         build-args:
 
-           [
 
-             mint-token,
 
-             melt-token,
 
-             p2pk,
 
-             proof-selection,
 
-             wallet
 
-           ]
 
-     steps:
 
-       - name: checkout
 
-         uses: actions/checkout@v4
 
-       - name: Install Nix
 
-         uses: DeterminateSystems/nix-installer-action@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "stable"
 
-       - name: Run example
 
-         run: nix develop -i -L .#stable --command cargo r --example ${{ matrix.build-args }}
 
-   clippy:
 
-     name: "Stable build, clippy and test"
 
-     runs-on: ubuntu-latest
 
-     timeout-minutes: 30
 
-     needs: pre-commit-checks
 
-     strategy:
 
-       matrix:
 
-         build-args:
 
-           [
 
-             # Core crate testing
 
-             -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 auth,
 
-             -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 auth,
 
-             -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 auth,
 
-             -p cdk-sql-common,
 
-             -p cdk-sql-common --no-default-features --features wallet,
 
-             -p cdk-sql-common --no-default-features --features mint,
 
-             
 
-             # Database and infrastructure crates
 
-             -p cdk-redb,
 
-             -p cdk-sqlite,
 
-             -p cdk-sqlite --features sqlcipher,
 
-             
 
-             # HTTP/API layer - consolidated
 
-             -p cdk-axum,
 
-             -p cdk-axum --no-default-features,
 
-             -p cdk-axum --no-default-features --features redis,
 
-             -p cdk-axum --no-default-features --features "redis swagger",
 
-             
 
-             # Lightning backends
 
-             -p cdk-cln,
 
-             -p cdk-lnd,
 
-             -p cdk-lnbits,
 
-             -p cdk-fake-wallet,
 
-             -p cdk-payment-processor,
 
-             -p cdk-ldk-node,
 
-             
 
-             -p cdk-signatory,
 
-             -p cdk-mint-rpc,
 
-             
 
-             # Binaries
 
-             --bin cdk-cli,
 
-             --bin cdk-cli --features sqlcipher,
 
-             --bin cdk-cli --features redb,
 
-             --bin cdk-mintd,
 
-             --bin cdk-mintd --features redis,
 
-             --bin cdk-mintd --features sqlcipher,
 
-             --bin cdk-mintd --no-default-features --features lnd --features sqlite,
 
-             --bin cdk-mintd --no-default-features --features cln --features postgres,
 
-             --bin cdk-mintd --no-default-features --features lnbits --features sqlite,
 
-             --bin cdk-mintd --no-default-features --features fakewallet --features sqlite,
 
-             --bin cdk-mintd --no-default-features --features grpc-processor --features sqlite,
 
-             --bin cdk-mintd --no-default-features --features "management-rpc lnd sqlite",
 
-             --bin cdk-mintd --no-default-features --features cln --features sqlite,
 
-             --bin cdk-mintd --no-default-features --features lnd --features postgres,
 
-             --bin cdk-mintd --no-default-features --features lnbits --features postgres,
 
-             --bin cdk-mintd --no-default-features --features fakewallet --features postgres,
 
-             --bin cdk-mintd --no-default-features --features grpc-processor --features postgres,
 
-             --bin cdk-mintd --no-default-features --features "management-rpc cln postgres",
 
-             --bin cdk-mintd --no-default-features --features "auth sqlite fakewallet",
 
-             --bin cdk-mintd --no-default-features --features "auth postgres lnd",
 
-             --bin cdk-mint-cli,
 
-           ]
 
-     steps:
 
-       - name: checkout
 
-         uses: actions/checkout@v4
 
-       - name: Install Nix
 
-         uses: DeterminateSystems/nix-installer-action@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "stable"
 
-       - 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 }}
 
-   regtest-itest:
 
-     name: "Integration regtest tests"
 
-     runs-on: ubuntu-latest
 
-     timeout-minutes: 30
 
-     needs: [pre-commit-checks, clippy, pure-itest, fake-mint-itest]
 
-     strategy:
 
-       matrix:
 
-         build-args:
 
-           [
 
-             -p cdk-integration-tests,
 
-           ]
 
-         database: 
 
-           [
 
-             SQLITE,
 
-             POSTGRES
 
-           ]
 
-     steps:
 
-       - name: checkout
 
-         uses: actions/checkout@v4
 
-       - name: Free Disk Space (Ubuntu)
 
-         uses: jlumbroso/free-disk-space@main
 
-         with:
 
-           tool-cache: false
 
-           android: true
 
-           dotnet: true
 
-           haskell: true
 
-           large-packages: true
 
-           docker-images: true
 
-           swap-storage: true
 
-       - name: Install Nix
 
-         uses: DeterminateSystems/nix-installer-action@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "stable"
 
-       - name: Test
 
-         run: nix develop -i -L .#stable --command just itest ${{ matrix.database }}
 
-           
 
-   fake-mint-itest:
 
-     name: "Integration fake mint tests"
 
-     runs-on: ubuntu-latest
 
-     timeout-minutes: 30
 
-     needs: [pre-commit-checks, clippy]
 
-     strategy:
 
-       matrix:
 
-         build-args:
 
-           [
 
-             -p cdk-integration-tests,
 
-           ]
 
-         database: 
 
-           [
 
-           SQLITE,
 
-           ]
 
-     steps:
 
-       - name: checkout
 
-         uses: actions/checkout@v4
 
-       - name: Free Disk Space (Ubuntu)
 
-         uses: jlumbroso/free-disk-space@main
 
-         with:
 
-           tool-cache: true
 
-           android: true
 
-           dotnet: true
 
-           haskell: true
 
-           large-packages: true
 
-           docker-images: true
 
-           swap-storage: true
 
-       - name: Install Nix
 
-         uses: DeterminateSystems/nix-installer-action@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "stable"
 
-       - name: Clippy
 
-         run: nix develop -i -L .#stable --command cargo clippy -- -D warnings
 
-       - name: Test fake auth mint
 
-         run: nix develop -i -L .#stable --command just fake-mint-itest ${{ matrix.database }}
 
-                 
 
-   pure-itest:
 
-     name: "Integration fake wallet tests"
 
-     runs-on: ubuntu-latest
 
-     timeout-minutes: 30
 
-     needs: [pre-commit-checks, clippy]
 
-     strategy:
 
-       matrix:
 
-         database: 
 
-           [
 
-           memory,
 
-           sqlite,
 
-           redb
 
-           ]
 
-     steps:
 
-       - name: checkout
 
-         uses: actions/checkout@v4
 
-       - name: Free Disk Space (Ubuntu)
 
-         uses: jlumbroso/free-disk-space@main
 
-         with:
 
-           tool-cache: true          
 
-           android: true
 
-           dotnet: true
 
-           haskell: true
 
-           large-packages: true
 
-           docker-images: true
 
-           swap-storage: true
 
-       - name: Install Nix
 
-         uses: DeterminateSystems/nix-installer-action@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "stable"
 
-       - name: Test fake mint
 
-         run: nix develop -i -L .#stable --command just test-pure ${{ matrix.database }}
 
-       - name: Install Postgres
 
-         run: bash -x crates/cdk-postgres/start_db_for_test.sh
 
-       - name: Test mint
 
-         run: nix develop -i -L .#stable --command just test
 
-   payment-processor-itests:
 
-     name: "Payment processor tests"
 
-     runs-on: ubuntu-latest
 
-     timeout-minutes: 30
 
-     needs: [pre-commit-checks, clippy, pure-itest, fake-mint-itest, regtest-itest]
 
-     strategy:
 
-       matrix:
 
-         ln: 
 
-           [
 
-           FAKEWALLET,
 
-           CLN,
 
-           LND
 
-           ]
 
-     steps:
 
-       - name: checkout
 
-         uses: actions/checkout@v4
 
-       - name: Free Disk Space (Ubuntu)
 
-         uses: jlumbroso/free-disk-space@main
 
-         with:
 
-           tool-cache: true          
 
-           android: true
 
-           dotnet: true
 
-           haskell: true
 
-           large-packages: true
 
-           docker-images: true
 
-           swap-storage: true
 
-       - name: Install Nix
 
-         uses: DeterminateSystems/nix-installer-action@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "stable"
 
-       - name: Test
 
-         run: nix develop -i -L .#stable --command just itest-payment-processor ${{matrix.ln}}
 
-   msrv-build:
 
-     name: "MSRV build"
 
-     runs-on: ubuntu-latest
 
-     timeout-minutes: 30
 
-     needs: [pre-commit-checks, clippy]
 
-     strategy:
 
-       matrix:
 
-         build-args:
 
-           [
 
-             -p cashu --no-default-features --features "wallet mint",
 
-             -p cdk-common --no-default-features --features "wallet mint",
 
-             -p cdk-sql-common,
 
-             -p cdk,
 
-             -p cdk --no-default-features --features "mint auth",
 
-             -p cdk --no-default-features --features "wallet auth",
 
-             -p cdk --no-default-features --features "http_subscription",
 
-             -p cdk-axum,
 
-             -p cdk-axum --no-default-features --features redis,
 
-             -p cdk-lnbits,
 
-             -p cdk-fake-wallet,
 
-             -p cdk-cln,
 
-             -p cdk-lnd,
 
-             -p cdk-mint-rpc,
 
-             -p cdk-sqlite,
 
-             -p cdk-mintd,
 
-             -p cdk-payment-processor --no-default-features,
 
-           ]
 
-     steps:
 
-       - name: checkout
 
-         uses: actions/checkout@v4
 
-       - name: Install Nix
 
-         uses: DeterminateSystems/nix-installer-action@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "msrv"
 
-       - name: Build
 
-         run: nix develop -i -L .#msrv --command cargo build ${{ matrix.build-args }}
 
-   
 
-   check-wasm:
 
-     name: Check WASM
 
-     runs-on: ubuntu-latest
 
-     timeout-minutes: 30
 
-     needs: [pre-commit-checks, clippy]
 
-     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@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "stable"
 
-       - 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
 
-     timeout-minutes: 30
 
-     needs: [pre-commit-checks, clippy, msrv-build]
 
-     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@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "msrv"
 
-       - name: Build cdk wasm
 
-         run: nix develop -i -L ".#${{ matrix.rust }}" --command cargo build ${{ matrix.build-args }} --target ${{ matrix.target }}
 
-   fake-mint-auth-itest:
 
-     name: "Integration fake mint auth tests"
 
-     runs-on: ubuntu-latest
 
-     timeout-minutes: 30
 
-     needs: [pre-commit-checks, clippy, pure-itest, fake-mint-itest]
 
-     strategy:
 
-       matrix:
 
-         database: 
 
-           [
 
-           SQLITE,
 
-           ]
 
-     steps:
 
-       - name: checkout
 
-         uses: actions/checkout@v4
 
-       - name: Install Nix
 
-         uses: DeterminateSystems/nix-installer-action@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "stable"
 
-       - name: Start Keycloak with Backup
 
-         run: |
 
-           docker compose -f misc/keycloak/docker-compose-recover.yml up -d
 
-           until docker logs $(docker ps -q --filter "ancestor=quay.io/keycloak/keycloak:25.0.6") | grep "Keycloak 25.0.6 on JVM (powered by Quarkus 3.8.5) started"; do sleep 1; done
 
-       - name: Verify Keycloak Import
 
-         run: |
 
-           docker logs $(docker ps -q --filter "ancestor=quay.io/keycloak/keycloak:25.0.6") | grep "Imported"
 
-       - name: Test fake auth mint
 
-         run: nix develop -i -L .#stable --command just fake-auth-mint-itest ${{ matrix.database }} http://127.0.0.1:8080/realms/cdk-test-realm/.well-known/openid-configuration
 
-       - name: Stop and clean up Docker Compose
 
-         run: |
 
-           docker compose -f misc/keycloak/docker-compose-recover.yml down
 
-           
 
-   doc-tests:
 
-     name: "Documentation Tests"
 
-     runs-on: ubuntu-latest
 
-     timeout-minutes: 30
 
-     needs: pre-commit-checks
 
-     steps:
 
-       - name: checkout
 
-         uses: actions/checkout@v4
 
-       - name: Install Nix
 
-         uses: DeterminateSystems/nix-installer-action@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "stable"
 
-       - name: Run doc tests
 
-         run: nix develop -i -L .#stable --command cargo test --doc
 
-         
 
-   strict-docs:
 
-     name: "Strict Documentation Check"
 
-     runs-on: ubuntu-latest
 
-     timeout-minutes: 30
 
-     needs: doc-tests
 
-     steps:
 
-       - name: checkout
 
-         uses: actions/checkout@v4
 
-       - name: Install Nix
 
-         uses: DeterminateSystems/nix-installer-action@v17
 
-       - name: Nix Cache
 
-         uses: DeterminateSystems/magic-nix-cache-action@main
 
-       - name: Rust Cache
 
-         uses: Swatinem/rust-cache@v2
 
-         with:
 
-           shared-key: "stable"
 
-       - name: Check docs with strict warnings
 
-         run: nix develop -i -L .#stable --command just docs-strict
 
 
  |