Skip to content

Commit c7dfae5

Browse files
committed
feat(ci): combine clippy ci jobs
1 parent 945b0a7 commit c7dfae5

1 file changed

Lines changed: 87 additions & 84 deletions

File tree

flake.nix

Lines changed: 87 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -399,18 +399,25 @@
399399
);
400400

401401
# Helper function to create combined clippy + test checks
402-
# Runs both in a single derivation to share build artifacts
402+
# Runs both in a single derivation to share build artifacts.
403+
# Now accepts a list of cargoArgs to run multiple checks sequentially.
403404
mkClippyAndTest =
404-
name: cargoArgs:
405+
name: cargoArgsList:
405406
craneLib.mkCargoDerivation (
406407
commonCraneArgs
407408
// {
408409
pname = "cdk-check-${name}";
409410
cargoArtifacts = workspaceDeps;
410-
buildPhaseCargoCommand = ''
411-
cargo clippy ${cargoArgs} -- -D warnings
412-
cargo test ${cargoArgs}
413-
'';
411+
buildPhaseCargoCommand = builtins.concatStringsSep "\n" (
412+
builtins.map
413+
(cargoArgs: ''
414+
echo "Running check with args: ${cargoArgs}"
415+
cargo clippy ${cargoArgs} -- -D warnings
416+
cargo test ${if builtins.match ".*cdk-cli.*" cargoArgs != null then "--bins" else "--lib"} ${cargoArgs}
417+
'')
418+
cargoArgsList
419+
);
420+
doCheck = false;
414421
installPhaseCommand = "mkdir -p $out";
415422
}
416423
);
@@ -425,6 +432,7 @@
425432
cargoArtifacts = workspaceDeps;
426433
buildPhaseCargoCommand = "cargo build --example ${name}";
427434
# Examples are compiled but not run (no network in Nix sandbox)
435+
doCheck = false;
428436
installPhaseCommand = "mkdir -p $out";
429437
}
430438
);
@@ -438,6 +446,7 @@
438446
pname = "cdk-example-${name}";
439447
cargoArtifacts = workspaceDeps;
440448
buildPhaseCargoCommand = "cargo build --release --example ${name}";
449+
doCheck = false;
441450
installPhaseCommand = ''
442451
mkdir -p $out/bin
443452
cp target/release/examples/${name} $out/bin/
@@ -510,6 +519,7 @@
510519
-p cdk-cli \
511520
-p cdk-mintd
512521
'';
522+
doCheck = false;
513523
installPhaseCommand = "mkdir -p $out";
514524
}
515525
);
@@ -540,6 +550,7 @@
540550
python3 crates/cdk-ffi/tests/test_transactions.py
541551
python3 crates/cdk-ffi/tests/test_kvstore.py
542552
'';
553+
doCheck = false;
543554
installPhaseCommand = "mkdir -p $out";
544555
}
545556
);
@@ -577,6 +588,7 @@
577588
cargo run --release -p cdk-ffi-dart --bin uniffi-bindgen -- \
578589
"../../../$CDK_FFI_LIB" --out-dir ../../../target/dart-bindings)
579590
'';
591+
doCheck = false;
580592
installPhaseCommand = ''
581593
LIB_EXT="${if isDarwin then "dylib" else "so"}"
582594
mkdir -p $out/lib/src/generated
@@ -605,6 +617,7 @@
605617
--out-dir target/kotlin-bindings \
606618
--no-format
607619
'';
620+
doCheck = false;
608621
installPhaseCommand = ''
609622
LIB_EXT="${if isDarwin then "dylib" else "so"}"
610623
@@ -640,84 +653,73 @@
640653
# These run both clippy and unit tests in a single derivation
641654
# ========================================
642655
clippyAndTestChecks = {
643-
# Core crate: cashu
644-
"cashu" = "-p cashu";
645-
"cashu-no-default" = "-p cashu --no-default-features";
646-
"cashu-wallet" = "-p cashu --no-default-features --features wallet";
647-
"cashu-mint" = "-p cashu --no-default-features --features mint";
648-
649-
# Core crate: cdk-common
650-
"cdk-common" = "-p cdk-common";
651-
"cdk-common-no-default" = "-p cdk-common --no-default-features";
652-
"cdk-common-wallet" = "-p cdk-common --no-default-features --features wallet";
653-
"cdk-common-mint" = "-p cdk-common --no-default-features --features mint";
654-
655-
# Core crate: cdk
656-
"cdk" = "-p cdk";
657-
"cdk-no-default" = "-p cdk --no-default-features";
658-
"cdk-wallet" = "-p cdk --no-default-features --features wallet";
659-
"cdk-mint" = "-p cdk --no-default-features --features mint";
660-
661-
# SQL crates
662-
"cdk-sql-common" = "-p cdk-sql-common";
663-
"cdk-sql-common-wallet" = "-p cdk-sql-common --no-default-features --features wallet";
664-
"cdk-sql-common-mint" = "-p cdk-sql-common --no-default-features --features mint";
665-
666-
# Database crates
667-
"cdk-redb" = "-p cdk-redb";
668-
"cdk-sqlite" = "-p cdk-sqlite";
669-
"cdk-sqlite-sqlcipher" = "-p cdk-sqlite --features sqlcipher";
670-
671-
# HTTP/API layer
672-
# Note: swagger feature excluded - downloads assets during build, incompatible with Nix sandbox
673-
"cdk-axum" = "-p cdk-axum";
674-
"cdk-axum-no-default" = "-p cdk-axum --no-default-features";
675-
"cdk-axum-redis" = "-p cdk-axum --no-default-features --features redis";
676-
677-
# Lightning backends
678-
"cdk-cln" = "-p cdk-cln";
679-
"cdk-lnd" = "-p cdk-lnd";
680-
"cdk-lnbits" = "-p cdk-lnbits";
681-
"cdk-fake-wallet" = "-p cdk-fake-wallet";
682-
"cdk-payment-processor" = "-p cdk-payment-processor";
683-
"cdk-ldk-node" = "-p cdk-ldk-node";
684-
685-
# Other crates
686-
"cdk-signatory" = "-p cdk-signatory";
687-
"cdk-mint-rpc" = "-p cdk-mint-rpc";
688-
"cdk-prometheus" = "-p cdk-prometheus";
689-
"cdk-ffi" = "-p cdk-ffi";
690-
"cdk-npubcash" = "-p cdk-npubcash";
691-
692-
# Binaries: cdk-cli
693-
"cdk-cli" = "-p cdk-cli";
694-
"cdk-cli-sqlcipher" = "-p cdk-cli --features sqlcipher";
695-
"cdk-cli-redb" = "-p cdk-cli --features redb";
696-
697-
# Binaries: cdk-mintd
698-
"cdk-mintd" = "-p cdk-mintd";
699-
"cdk-mintd-redis" = "-p cdk-mintd --features redis";
700-
"cdk-mintd-sqlcipher" = "-p cdk-mintd --features sqlcipher";
701-
"cdk-mintd-lnd-sqlite" = "-p cdk-mintd --no-default-features --features lnd,sqlite";
702-
"cdk-mintd-cln-postgres" = "-p cdk-mintd --no-default-features --features cln,postgres";
703-
"cdk-mintd-lnbits-sqlite" = "-p cdk-mintd --no-default-features --features lnbits,sqlite";
704-
"cdk-mintd-fakewallet-sqlite" = "-p cdk-mintd --no-default-features --features fakewallet,sqlite";
705-
"cdk-mintd-grpc-processor-sqlite" =
706-
"-p cdk-mintd --no-default-features --features grpc-processor,sqlite";
707-
"cdk-mintd-management-rpc-lnd-sqlite" =
708-
"-p cdk-mintd --no-default-features --features management-rpc,lnd,sqlite";
709-
"cdk-mintd-cln-sqlite" = "-p cdk-mintd --no-default-features --features cln,sqlite";
710-
"cdk-mintd-lnd-postgres" = "-p cdk-mintd --no-default-features --features lnd,postgres";
711-
"cdk-mintd-lnbits-postgres" = "-p cdk-mintd --no-default-features --features lnbits,postgres";
712-
"cdk-mintd-fakewallet-postgres" =
713-
"-p cdk-mintd --no-default-features --features fakewallet,postgres";
714-
"cdk-mintd-grpc-processor-postgres" =
715-
"-p cdk-mintd --no-default-features --features grpc-processor,postgres";
716-
"cdk-mintd-management-rpc-cln-postgres" =
717-
"-p cdk-mintd --no-default-features --features management-rpc,cln,postgres";
718-
719-
# Binaries: cdk-mint-cli (binary name, package is cdk-mint-rpc)
720-
"cdk-mint-cli" = "-p cdk-mint-rpc";
656+
"core-lib" = [
657+
"-p cashu"
658+
"-p cashu --no-default-features"
659+
"-p cashu --no-default-features --features wallet"
660+
"-p cashu --no-default-features --features mint"
661+
"-p cdk-common"
662+
"-p cdk-common --no-default-features"
663+
"-p cdk-common --no-default-features --features wallet"
664+
"-p cdk-common --no-default-features --features mint"
665+
"-p cdk"
666+
"-p cdk --no-default-features"
667+
"-p cdk --no-default-features --features wallet"
668+
"-p cdk --no-default-features --features mint"
669+
];
670+
671+
"storage-and-cli" = [
672+
"-p cdk-sql-common"
673+
"-p cdk-sql-common --no-default-features --features wallet"
674+
"-p cdk-sql-common --no-default-features --features mint"
675+
"-p cdk-redb"
676+
"-p cdk-sqlite"
677+
"-p cdk-sqlite --features sqlcipher"
678+
"-p cdk-cli"
679+
"-p cdk-cli --features sqlcipher"
680+
"-p cdk-cli --features redb"
681+
];
682+
683+
"lightning-and-api" = [
684+
"-p cdk-axum"
685+
"-p cdk-axum --no-default-features"
686+
"-p cdk-axum --no-default-features --features redis"
687+
"-p cdk-cln"
688+
"-p cdk-lnd"
689+
"-p cdk-lnbits"
690+
"-p cdk-fake-wallet"
691+
"-p cdk-payment-processor"
692+
"-p cdk-ldk-node"
693+
"-p cdk-npubcash"
694+
];
695+
696+
"mintd-main" = [
697+
"-p cdk-mintd"
698+
"-p cdk-mintd --features redis"
699+
"-p cdk-mintd --features sqlcipher"
700+
"-p cdk-signatory"
701+
"-p cdk-mint-rpc"
702+
"-p cdk-prometheus"
703+
"-p cdk-ffi"
704+
];
705+
706+
"mintd-backends-sqlite" = [
707+
"-p cdk-mintd --no-default-features --features lnd,sqlite"
708+
"-p cdk-mintd --no-default-features --features lnbits,sqlite"
709+
"-p cdk-mintd --no-default-features --features fakewallet,sqlite"
710+
"-p cdk-mintd --no-default-features --features grpc-processor,sqlite"
711+
"-p cdk-mintd --no-default-features --features management-rpc,lnd,sqlite"
712+
"-p cdk-mintd --no-default-features --features cln,sqlite"
713+
];
714+
715+
"mintd-backends-postgres" = [
716+
"-p cdk-mintd --no-default-features --features cln,postgres"
717+
"-p cdk-mintd --no-default-features --features lnd,postgres"
718+
"-p cdk-mintd --no-default-features --features lnbits,postgres"
719+
"-p cdk-mintd --no-default-features --features fakewallet,postgres"
720+
"-p cdk-mintd --no-default-features --features grpc-processor,postgres"
721+
"-p cdk-mintd --no-default-features --features management-rpc,cln,postgres"
722+
];
721723
};
722724

723725
# ========================================
@@ -1066,6 +1068,7 @@
10661068
-p cdk-integration-tests \
10671069
--archive-file $out/itest-archive.tar.zst
10681070
'';
1071+
doCheck = false;
10691072
installPhaseCommand = "";
10701073
}
10711074
);

0 commit comments

Comments
 (0)