Make CI build -> test flows test -> build. 2023-08-keysend-robust-test
authorMatt Corallo <git@bluematt.me>
Tue, 8 Aug 2023 04:19:51 +0000 (04:19 +0000)
committerMatt Corallo <git@bluematt.me>
Tue, 8 Aug 2023 04:19:51 +0000 (04:19 +0000)
Doing `cargo test` causes us to build both the crate(s) themselves
and the test binaries, which depend on the main builds. However, it
can start building the test code while the actual program code for
the main crate(s) themselves are being built, making a
build -> test flow slightly slower than test -> build.

Its not really a huge deal, but I'm using `ci/ci-tests.sh` more
locally and it meaningfully changes the time-to-test-run.

ci/ci-tests.sh

index 5b46b2da079fef898391362ff026f159c60624d8..ef9ecf7b86d8653d5bdf1b7ab758032425bd33d6 100755 (executable)
@@ -37,30 +37,30 @@ PIN_RELEASE_DEPS # pin the release dependencies in our main workspace
 export RUST_BACKTRACE=1
 
 echo -e "\n\nBuilding and testing all workspace crates..."
-cargo build --verbose --color always
 cargo test --verbose --color always
+cargo build --verbose --color always
 
 echo -e "\n\nBuilding and testing Block Sync Clients with features"
 pushd lightning-block-sync
-cargo build --verbose --color always --features rest-client
 cargo test --verbose --color always --features rest-client
-cargo build --verbose --color always --features rpc-client
+cargo build --verbose --color always --features rest-client
 cargo test --verbose --color always --features rpc-client
-cargo build --verbose --color always --features rpc-client,rest-client
+cargo build --verbose --color always --features rpc-client
 cargo test --verbose --color always --features rpc-client,rest-client
-cargo build --verbose --color always --features rpc-client,rest-client,tokio
+cargo build --verbose --color always --features rpc-client,rest-client
 cargo test --verbose --color always --features rpc-client,rest-client,tokio
+cargo build --verbose --color always --features rpc-client,rest-client,tokio
 popd
 
 if [[ $RUSTC_MINOR_VERSION -gt 67 && "$HOST_PLATFORM" != *windows* ]]; then
        echo -e "\n\nBuilding and testing Transaction Sync Clients with features"
        pushd lightning-transaction-sync
-       cargo build --verbose --color always --features esplora-blocking
        cargo test --verbose --color always --features esplora-blocking
-       cargo build --verbose --color always --features esplora-async
+       cargo build --verbose --color always --features esplora-blocking
        cargo test --verbose --color always --features esplora-async
-       cargo build --verbose --color always --features esplora-async-https
+       cargo build --verbose --color always --features esplora-async
        cargo test --verbose --color always --features esplora-async-https
+       cargo build --verbose --color always --features esplora-async-https
        popd
 fi