From f1b097877b19efb96845e486d3d42d86cb0a39be Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Wed, 17 Feb 2021 14:46:12 +1100 Subject: [PATCH] Split `build_test` into `build` and `test` Building binaries and building tests results in different artifacts inside the `target` directory. If we use distinct caches for these commands, the caches are more useful because less code has to be re-built. --- .github/workflows/ci.yml | 78 +++++++++++++++++++++++++++------------- bors.toml | 6 ++-- 2 files changed, 57 insertions(+), 27 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2a072dbe..32477390 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,7 +46,57 @@ jobs: - name: Run clippy with all features enabled run: cargo clippy --workspace --all-targets --all-features -- -D warnings - build_test: + build: + strategy: + matrix: + target: [ x86_64-unknown-linux-gnu, x86_64-apple-darwin ] + include: + - target: x86_64-unknown-linux-gnu + os: ubuntu-latest + - target: x86_64-apple-darwin + os: macos-latest + runs-on: ${{ matrix.os }} + steps: + + - name: Checkout sources + uses: actions/checkout@v2 + + - name: Install Rust toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + override: true + + - name: Cache target directory + uses: actions/cache@v1 + if: matrix.os == 'ubuntu-latest' + with: + path: target + key: rust-${{ matrix.target }}-target-directory-build-${{ hashFiles('Cargo.lock') }}-v1 + + - name: Cache ~/.cargo/registry directory + uses: actions/cache@v1 + with: + path: ~/.cargo/registry + key: rust-${{ matrix.target }}-cargo-registry-directory-${{ hashFiles('Cargo.lock') }}-v1 + + - name: Build binary + run: | + cargo build -p swap --target ${{ matrix.target }} + + - name: Upload swap_cli binary + uses: actions/upload-artifact@v2-preview + with: + name: swap-${{ matrix.target }} + path: target/${{ matrix.target }}/debug/swap_cli + + - name: Upload nectar binary + uses: actions/upload-artifact@v2-preview + with: + name: nectar-${{ matrix.target }} + path: target/${{ matrix.target }}/debug/nectar + + test: env: RUST_TEST_TASKS: 2 strategy: @@ -74,7 +124,7 @@ jobs: if: matrix.os == 'ubuntu-latest' with: path: target - key: rust-${{ matrix.target }}-target-directory-${{ hashFiles('Cargo.lock') }}-v1 + key: rust-${{ matrix.target }}-target-directory-test-${{ hashFiles('Cargo.lock') }}-v1 - name: Cache ~/.cargo/registry directory uses: actions/cache@v1 @@ -82,12 +132,6 @@ jobs: path: ~/.cargo/registry key: rust-${{ matrix.target }}-cargo-registry-directory-${{ hashFiles('Cargo.lock') }}-v1 - - name: Cargo check release code with default features - run: cargo check --workspace - - - name: Cargo check all features - run: cargo check --workspace --all-targets --all-features - - name: Build tests run: cargo build --tests --workspace --all-features @@ -98,22 +142,6 @@ jobs: - name: Run library tests for swap run: cargo test --package swap --lib --all-features - - name: Build binary - run: | - cargo build -p swap --target ${{ matrix.target }} - - - name: Upload swap_cli binary - uses: actions/upload-artifact@v2-preview - with: - name: swap-${{ matrix.target }} - path: target/${{ matrix.target }}/debug/swap_cli - - - name: Upload nectar binary - uses: actions/upload-artifact@v2-preview - with: - name: nectar-${{ matrix.target }} - path: target/${{ matrix.target }}/debug/nectar - docker_tests: env: TARGET: x86_64-unknown-linux-gnu @@ -142,7 +170,7 @@ jobs: uses: actions/cache@v1 with: path: target - key: rust-${{ env.TARGET }}-target-directory-${{ hashFiles('Cargo.lock') }}-v1 + key: rust-${{ matrix.target }}-target-directory-test-${{ hashFiles('Cargo.lock') }}-v1 - name: Cache ~/.cargo/registry directory uses: actions/cache@v1 diff --git a/bors.toml b/bors.toml index fcb4f9eb..8f1b1ab7 100644 --- a/bors.toml +++ b/bors.toml @@ -1,7 +1,9 @@ status = [ "static_analysis", - "build_test (x86_64-unknown-linux-gnu)", - "build_test (x86_64-apple-darwin)", + "build (x86_64-unknown-linux-gnu)", + "build (x86_64-apple-darwin)", + "test (x86_64-unknown-linux-gnu)", + "test (x86_64-apple-darwin)", "docker_tests (happy_path)", "docker_tests (happy_path_restart_bob_before_comm)", "docker_tests (bob_refunds_using_cancel_and_refund_command)",