From 082281b10b96aa0a16f3b4a3a4a29f0c806b4539 Mon Sep 17 00:00:00 2001 From: Wilfried Chauveau Date: Sat, 13 Aug 2022 17:14:18 +0100 Subject: [PATCH] Use matrix in GHA workflow to reduce duplication --- .github/workflows/build_and_test.yml | 47 ++++++++-------------------- 1 file changed, 13 insertions(+), 34 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index b2a75ab..08d0833 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -1,9 +1,13 @@ on: [push, pull_request] name: Build and Test check jobs: - check: - name: cargo-check + builds: + name: "Build checks" runs-on: ubuntu-20.04 + strategy: + matrix: + features: ["", "--features eh1_0_alpha", "--features chrono"] + mode: ["", "--release"] steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 @@ -12,51 +16,26 @@ jobs: target: thumbv6m-none-eabi override: true profile: minimal - - name: "Build workspace (debug)" + - name: "Build workspace" uses: actions-rs/cargo@v1 with: command: build - args: --workspace - - name: "Build workspace and examples (debug)" + args: ${{ matrix.mode }} --workspace ${{ matrix.features }} + - name: "Build workspace and examples" uses: actions-rs/cargo@v1 with: command: build - args: --workspace --examples - - name: "List built examples and clean" - run: rm -vrf target/thumbv6m-none-eabi/*/examples/* | sed -e "s/removed '\(.*\)'/\1/" | xargs -l basename | grep -Ev '(-|\.d)' - - name: "Build workspace and examples (debug, features=eh1_0_alpha)" - uses: actions-rs/cargo@v1 - with: - command: build - args: --workspace --examples --features eh1_0_alpha - - name: "List built examples and clean" - run: rm -vrf target/thumbv6m-none-eabi/*/examples/* | sed -e "s/removed '\(.*\)'/\1/" | xargs -l basename | grep -Ev '(-|\.d)' - - name: "Build workspace and examples (release)" - uses: actions-rs/cargo@v1 - with: - command: build - args: --release --workspace --examples - - name: "List built examples and clean" - run: rm -vrf target/thumbv6m-none-eabi/*/examples/* | sed -e "s/removed '\(.*\)'/\1/" | xargs -l basename | grep -Ev '(-|\.d)' - - name: "Build workspace and examples (release, features=eh1_0_alpha)" - uses: actions-rs/cargo@v1 - with: - command: build - args: --release --workspace --examples --features eh1_0_alpha + args: ${{ matrix.mode }} --workspace --examples ${{ matrix.features }} - name: "List built examples and clean" run: rm -vrf target/thumbv6m-none-eabi/*/examples/* | sed -e "s/removed '\(.*\)'/\1/" | xargs -l basename | grep -Ev '(-|\.d)' - name: "Test" uses: actions-rs/cargo@v1 with: command: test - args: --tests --target x86_64-unknown-linux-gnu + args: --tests --target x86_64-unknown-linux-gnu ${{ matrix.features }} - name: "Test docs" uses: actions-rs/cargo@v1 with: command: test - args: --doc --target x86_64-unknown-linux-gnu - - name: "Test docs (features=chrono)" - uses: actions-rs/cargo@v1 - with: - command: test - args: --doc --target x86_64-unknown-linux-gnu --features chrono + args: --doc --target x86_64-unknown-linux-gnu ${{ matrix.features }} +