Skip to content

Commit 2bacbe4

Browse files
committed
Cleaner matrix syntax
Signed-off-by: DJO <[email protected]>
1 parent d1d4923 commit 2bacbe4

File tree

1 file changed

+36
-32
lines changed

1 file changed

+36
-32
lines changed

.github/workflows/ci.yml

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,31 @@ jobs:
1010
strategy:
1111
fail-fast: false
1212
matrix:
13-
project:
14-
# TODO: remove the cargo_project_name and only use the name after renaming mithril-core name in its Cargo.toml
15-
- name: mithril-core
13+
include:
14+
- project: mithril-core
1615
cargo_project_name: mithril
17-
artefacts_pattern: libmithril
18-
- name: mithril-common
19-
cargo_project_name: mithril-common
20-
artefacts_pattern: libmithril_common
21-
- name: mithril-aggregator
22-
cargo_project_name: mithril-aggregator
23-
artefacts_pattern: mithril-aggregator
24-
- name: mithril-client
25-
cargo_project_name: mithril-client
26-
artefacts_pattern: mithril-client
27-
- name: mithril-signer
28-
cargo_project_name: mithril-signer
29-
artefacts_pattern: mithril-signer
16+
artifacts_pattern: libmithril
17+
- project: mithril-common
18+
artifacts_pattern: libmithril_common
19+
- project: mithril-aggregator
20+
- project: mithril-client
21+
- project: mithril-signer
22+
env:
23+
CARGO_PROJECT_NAME: ${{ matrix.project }}
24+
ARTIFACTS_PATTERN: ${{ matrix.project }}
25+
3026
steps:
3127
- name: Checkout sources
3228
uses: actions/checkout@v2
3329

30+
- name: Overriding default $CARGO_PROJECT_NAME with matrix value
31+
if: ${{ matrix.cargo_project_name }}
32+
run: echo "CARGO_PROJECT_NAME=${{ matrix.cargo_project_name }}" >> $GITHUB_ENV
33+
34+
- name: Overriding default $ARTIFACTS_PATTERN with matrix value
35+
if: ${{ matrix.artifacts_pattern }}
36+
run: echo "ARTIFACTS_PATTERN=${{ matrix.artifacts_pattern }}" >> $GITHUB_ENV
37+
3438
- name: Install stable toolchain
3539
uses: actions-rs/toolchain@v1
3640
with:
@@ -47,9 +51,9 @@ jobs:
4751
~/.cargo/registry/
4852
~/.cargo/git/
4953
target/
50-
key: cargo-${{ runner.os }}-${{ matrix.project.name }}-${{ hashFiles('Cargo.lock') }}
54+
key: cargo-${{ runner.os }}-${{ matrix.project }}-${{ hashFiles('Cargo.lock') }}
5155
restore-keys: |
52-
${{ runner.os }}-${{ matrix.project.name }}-key
56+
${{ runner.os }}-${{ matrix.project }}-key
5357
5458
- name: Install cargo tools
5559
if: ${{ steps.cargo-cache.outputs.cache-hit == false }}
@@ -60,58 +64,58 @@ jobs:
6064
uses: actions-rs/cargo@v1
6165
with:
6266
command: build
63-
args: --release --all-targets -p ${{ matrix.project.cargo_project_name }}
67+
args: --release --all-targets -p ${{ env.CARGO_PROJECT_NAME }}
6468

6569
- name: Cargo check
6670
uses: actions-rs/cargo@v1
6771
with:
6872
command: check
69-
args: --release --all-targets -p ${{ matrix.project.cargo_project_name }}
73+
args: --release --all-targets -p ${{ env.CARGO_PROJECT_NAME }}
7074

7175
- name: Clippy Check
7276
uses: actions-rs/clippy-check@v1
7377
with:
74-
name: clippy-${{ matrix.project.name }}
78+
name: clippy-${{ matrix.project }}
7579
token: ${{ secrets.GITHUB_TOKEN }}
76-
args: --release --all-features -p ${{ matrix.project.cargo_project_name }}
80+
args: --release --all-features -p ${{ env.CARGO_PROJECT_NAME }}
7781

7882
- name: Cargo fmt
7983
uses: actions-rs/cargo@v1
8084
with:
8185
command: fmt
82-
args: --all -p ${{ matrix.project.cargo_project_name }}
86+
args: --all -p ${{ env.CARGO_PROJECT_NAME }}
8387

8488
- name: Run tests
8589
shell: bash
8690
run: |
87-
set -o pipefail && cargo test --release -p ${{ matrix.project.cargo_project_name }} -- -Z unstable-options --format json --report-time | tee >(cargo2junit > test-results-${{ matrix.project.name }}.xml)
91+
set -o pipefail && cargo test --release -p $CARGO_PROJECT_NAME -- -Z unstable-options --format json --report-time | tee >(cargo2junit > test-results-${{ matrix.project }}.xml)
8892
8993
- name: Upload Tests Results
9094
if: always()
9195
uses: actions/upload-artifact@v3
9296
with:
93-
name: test-results-${{ matrix.project.name }}
97+
name: test-results-${{ matrix.project }}
9498
path: |
9599
./**/test-results-*.xml
96100
97-
- name: Generate ${{ matrix.project.name }} doc
101+
- name: Generate ${{ matrix.project }} doc
98102
uses: actions-rs/cargo@v1
99103
with:
100104
command: doc
101-
args: --no-deps --release -p ${{ matrix.project.cargo_project_name }}
105+
args: --no-deps --release -p ${{ env.CARGO_PROJECT_NAME }}
102106

103-
- name: Publish ${{ matrix.project.name }}
107+
- name: Publish ${{ matrix.project }}
104108
uses: actions/upload-artifact@v3
105109
with:
106-
name: ${{ matrix.project.name }}
110+
name: ${{ matrix.project }}
107111
path: |
108-
target/release/${{ matrix.project.artefacts_pattern }}*
112+
target/release/${{ env.ARTIFACTS_PATTERN }}*
109113
if-no-files-found: error
110114

111-
- name: Publish ${{ matrix.project.name }}-doc
115+
- name: Publish ${{ matrix.project }}-doc
112116
uses: actions/upload-artifact@v3
113117
with:
114-
name: ${{ matrix.project.name }}-doc
118+
name: ${{ matrix.project }}-doc
115119
if-no-files-found: error
116120
path: |
117121
target/doc/

0 commit comments

Comments
 (0)