lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

checks.nix (11469B)


      1 { common, pkgs }:
      2 let
      3   cargoFmt = common.craneLib.cargoFmt common.commonCraneArgs;
      4   cargoCheck = common.craneLib.mkCargoDerivation (
      5     common.commonCraneArgs
      6     // {
      7       inherit (common) cargoArtifacts;
      8       pname = "radroots-cargo-check";
      9       doCheck = false;
     10       buildPhaseCargoCommand = ''
     11         cargo check --locked --all-targets ${common.publicNativeCargoArgs}
     12         cargo check --locked --all-targets ${common.previewCargoArgs}
     13       '';
     14       installPhaseCommand = "mkdir -p $out";
     15     }
     16   );
     17   cargoTest = common.craneLib.mkCargoDerivation (
     18     common.commonCraneArgs
     19     // {
     20       inherit (common) cargoArtifacts;
     21       pname = "radroots-cargo-test";
     22       doCheck = false;
     23       buildPhaseCargoCommand = ''
     24         cargo test --locked ${common.coreContractCargoArgs}
     25         cargo test --locked ${common.previewCargoArgs}
     26         cargo clippy --locked --all-targets ${common.publicNativeCargoArgs} -- -D warnings
     27         cargo clippy --locked --all-targets ${common.previewCargoArgs} -- -D warnings
     28       '';
     29       installPhaseCommand = "mkdir -p $out";
     30     }
     31   );
     32   coreConformance = common.craneLib.mkCargoDerivation (
     33     common.commonCraneArgs
     34     // {
     35       inherit (common) cargoArtifacts;
     36       pname = "radroots-core-conformance";
     37       doCheck = false;
     38       buildPhaseCargoCommand = ''
     39         cargo check -p radroots_core --all-targets --no-default-features --locked
     40         cargo check -p radroots_core --all-targets --no-default-features --features std --locked
     41         cargo check -p radroots_core --all-targets --no-default-features --features serde --locked
     42         cargo check -p radroots_core --all-targets --locked
     43         cargo check -p radroots_core --all-targets --all-features --locked
     44         cargo clippy -p radroots_core --all-targets --all-features --locked -- -D warnings
     45         cargo test -p radroots_core --all-targets --all-features --locked
     46         cargo check -p radroots_core --no-default-features --target wasm32-unknown-unknown --locked
     47         cargo check -p radroots_core --no-default-features --features serde --target wasm32-unknown-unknown --locked
     48         RUSTDOCFLAGS="-D warnings" cargo doc -p radroots_core --all-features --no-deps --locked
     49         cargo test -p radroots_core --all-features --doc --locked
     50       '';
     51       installPhaseCommand = "mkdir -p $out";
     52     }
     53   );
     54   identityConformance = common.craneLib.mkCargoDerivation (
     55     common.commonCraneArgs
     56     // {
     57       inherit (common) cargoArtifacts;
     58       pname = "radroots-identity-conformance";
     59       doCheck = false;
     60       buildPhaseCargoCommand = ''
     61         cargo check -p radroots_identity --all-targets --no-default-features --locked
     62         cargo check -p radroots_identity --all-targets --no-default-features --features std --locked
     63         cargo check -p radroots_identity --all-targets --no-default-features --features serde --locked
     64         cargo check -p radroots_identity --all-targets --locked
     65         cargo check -p radroots_identity --all-targets --all-features --locked
     66         cargo clippy -p radroots_identity --all-targets --no-default-features --locked -- -D warnings
     67         cargo clippy -p radroots_identity --all-targets --no-default-features --features serde --locked -- -D warnings
     68         cargo clippy -p radroots_identity --all-targets --all-features --locked -- -D warnings
     69         cargo test -p radroots_identity --all-targets --no-default-features --locked
     70         cargo test -p radroots_identity --all-targets --no-default-features --features std --locked
     71         cargo test -p radroots_identity --all-targets --no-default-features --features serde --locked
     72         cargo test -p radroots_identity --all-targets --all-features --locked
     73         cargo check -p radroots_identity --no-default-features --target wasm32-unknown-unknown --locked
     74         cargo check -p radroots_identity --no-default-features --features serde --target wasm32-unknown-unknown --locked
     75         RUSTDOCFLAGS="-D warnings" cargo doc -p radroots_identity --all-features --no-deps --locked
     76         cargo test -p radroots_identity --all-features --doc --locked
     77       '';
     78       installPhaseCommand = "mkdir -p $out";
     79     }
     80   );
     81   blossomConformance = common.craneLib.mkCargoDerivation (
     82     common.commonCraneArgs
     83     // {
     84       inherit (common) cargoArtifacts;
     85       pname = "radroots-blossom-conformance";
     86       doCheck = false;
     87       buildPhaseCargoCommand = ''
     88         cargo check -p radroots_blossom --all-targets --no-default-features --locked
     89         cargo check -p radroots_blossom --all-targets --no-default-features --features std --locked
     90         cargo check -p radroots_blossom --all-targets --no-default-features --features serde --locked
     91         cargo check -p radroots_blossom --all-targets --locked
     92         cargo check -p radroots_blossom --all-targets --all-features --locked
     93         cargo clippy -p radroots_blossom --all-targets --no-default-features --locked -- -D warnings
     94         cargo clippy -p radroots_blossom --all-targets --no-default-features --features serde --locked -- -D warnings
     95         cargo clippy -p radroots_blossom --all-targets --all-features --locked -- -D warnings
     96         cargo test -p radroots_blossom --all-targets --no-default-features --locked
     97         cargo test -p radroots_blossom --all-targets --no-default-features --features std --locked
     98         cargo test -p radroots_blossom --all-targets --no-default-features --features serde --locked
     99         cargo test -p radroots_blossom --all-targets --all-features --locked
    100         cargo check -p radroots_blossom --no-default-features --target wasm32-unknown-unknown --locked
    101         cargo check -p radroots_blossom --no-default-features --features serde --target wasm32-unknown-unknown --locked
    102         RUSTDOCFLAGS="-D warnings" cargo doc -p radroots_blossom --all-features --no-deps --locked
    103         cargo test -p radroots_blossom --all-features --doc --locked
    104       '';
    105       installPhaseCommand = "mkdir -p $out";
    106     }
    107   );
    108   eventConformance = common.craneLib.mkCargoDerivation (
    109     common.commonCraneArgs
    110     // {
    111       inherit (common) cargoArtifacts;
    112       pname = "radroots-event-conformance";
    113       doCheck = false;
    114       buildPhaseCargoCommand = ''
    115         cargo check -p radroots_event --all-targets --no-default-features --locked
    116         cargo check -p radroots_event --all-targets --no-default-features --features std --locked
    117         cargo check -p radroots_event --all-targets --no-default-features --features serde --locked
    118         cargo check -p radroots_event --all-targets --no-default-features --features knowledge --locked
    119         cargo check -p radroots_event --all-targets --no-default-features --features std,knowledge --locked
    120         cargo check -p radroots_event --all-targets --no-default-features --features serde,knowledge --locked
    121         cargo check -p radroots_event --all-targets --locked
    122         cargo check -p radroots_event --all-targets --all-features --locked
    123         cargo clippy -p radroots_event --all-targets --no-default-features --locked -- -D warnings
    124         cargo clippy -p radroots_event --all-targets --no-default-features --features std --locked -- -D warnings
    125         cargo clippy -p radroots_event --all-targets --no-default-features --features serde --locked -- -D warnings
    126         cargo clippy -p radroots_event --all-targets --no-default-features --features knowledge --locked -- -D warnings
    127         cargo clippy -p radroots_event --all-targets --no-default-features --features std,knowledge --locked -- -D warnings
    128         cargo clippy -p radroots_event --all-targets --no-default-features --features serde,knowledge --locked -- -D warnings
    129         cargo clippy -p radroots_event --all-targets --all-features --locked -- -D warnings
    130         cargo test -p radroots_event --all-targets --no-default-features --locked
    131         cargo test -p radroots_event --all-targets --no-default-features --features std --locked
    132         cargo test -p radroots_event --all-targets --no-default-features --features serde --locked
    133         cargo test -p radroots_event --all-targets --no-default-features --features knowledge --locked
    134         cargo test -p radroots_event --all-targets --no-default-features --features std,knowledge --locked
    135         cargo test -p radroots_event --all-targets --no-default-features --features serde,knowledge --locked
    136         cargo test -p radroots_event --all-targets --locked
    137         cargo test -p radroots_event --all-targets --all-features --locked
    138         cargo check -p radroots_event --no-default-features --target wasm32-unknown-unknown --locked
    139         cargo check -p radroots_event --no-default-features --features serde --target wasm32-unknown-unknown --locked
    140         cargo check -p radroots_event --no-default-features --features knowledge --target wasm32-unknown-unknown --locked
    141         cargo check -p radroots_event --no-default-features --features serde,knowledge --target wasm32-unknown-unknown --locked
    142         cargo check -p radroots_event --all-features --target wasm32-unknown-unknown --locked
    143         RUSTDOCFLAGS="-D warnings" cargo doc -p radroots_event --all-features --no-deps --locked
    144         cargo test -p radroots_event --all-features --doc --locked
    145       '';
    146       installPhaseCommand = "mkdir -p $out";
    147     }
    148   );
    149   mkReplicaSyncLane =
    150     {
    151       pname,
    152       command,
    153     }:
    154     common.craneLib.mkCargoDerivation (
    155       common.commonCraneArgs
    156       // {
    157         inherit (common) cargoArtifacts;
    158         inherit pname;
    159         doCheck = false;
    160         buildPhaseCargoCommand = command;
    161         installPhaseCommand = "mkdir -p $out";
    162       }
    163     );
    164   replicaSyncDefaultCheck = mkReplicaSyncLane {
    165     pname = "radroots-replica-sync-default-check";
    166     command = "cargo check -p radroots_replica_sync --all-targets";
    167   };
    168   replicaSyncDefaultTest = mkReplicaSyncLane {
    169     pname = "radroots-replica-sync-default-test";
    170     command = "cargo test -p radroots_replica_sync";
    171   };
    172   replicaSyncLegacyCheck = mkReplicaSyncLane {
    173     pname = "radroots-replica-sync-legacy-ingest-check";
    174     command = "cargo check -p radroots_replica_sync --all-targets --features legacy-ingest";
    175   };
    176   replicaSyncLegacyTest = mkReplicaSyncLane {
    177     pname = "radroots-replica-sync-legacy-ingest-test";
    178     command = "cargo test -p radroots_replica_sync --features legacy-ingest";
    179   };
    180 in
    181 {
    182   cargo-fmt = cargoFmt;
    183   cargo-check = cargoCheck;
    184   cargo-test = cargoTest;
    185   core-conformance = coreConformance;
    186   identity-conformance = identityConformance;
    187   blossom-conformance = blossomConformance;
    188   event-conformance = eventConformance;
    189   replica-sync-default-check = replicaSyncDefaultCheck;
    190   replica-sync-default-test = replicaSyncDefaultTest;
    191   replica-sync-legacy-ingest-check = replicaSyncLegacyCheck;
    192   replica-sync-legacy-ingest-test = replicaSyncLegacyTest;
    193 
    194   architecture = common.craneLib.mkCargoDerivation (
    195     common.commonCraneArgs
    196     // {
    197       inherit (common) cargoArtifacts;
    198       pname = "radroots-architecture";
    199       doCheck = false;
    200       buildPhaseCargoCommand = ''
    201         cargo run --locked -q -p xtask -- architecture-source-export-ci
    202       '';
    203       installPhaseCommand = "mkdir -p $out";
    204     }
    205   );
    206 
    207   guards = common.mkRepoCheck {
    208     name = "repo-guards";
    209     runtimeInputs = [
    210       common.xtaskPackage
    211       pkgs.coreutils
    212       pkgs.gitMinimal
    213       pkgs.gnugrep
    214       pkgs.ripgrep
    215     ];
    216     initGit = true;
    217     command = ''
    218       xtask hygiene forbidden-identifiers
    219       xtask hygiene prototype-contracts
    220     '';
    221   };
    222 }