Skip to content

Commit 971d25a

Browse files
committed
Split PR checks into category jobs
1 parent a98fa84 commit 971d25a

1 file changed

Lines changed: 78 additions & 28 deletions

File tree

.github/workflows/pr-check.yml

Lines changed: 78 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
- name: Build ${{ matrix.configuration }}
3030
run: dotnet build ModularityKit.Mutator.slnx -c ${{ matrix.configuration }} --no-restore
3131

32-
validate:
32+
tests:
3333
name: ${{ matrix.name }}
3434
runs-on: ubuntu-latest
3535
needs: build
@@ -40,47 +40,76 @@ jobs:
4040
include:
4141
- name: test:core
4242
command: dotnet test Tests/ModularityKit.Mutator.Tests/ModularityKit.Mutator.Tests.csproj -c Release --no-restore
43-
redis: false
4443
- name: test:governance
4544
command: dotnet test Tests/ModularityKit.Mutator.Governance.Tests/ModularityKit.Mutator.Governance.Tests.csproj -c Release --no-restore
46-
redis: false
4745
- name: test:governance-redis
4846
command: dotnet test Tests/ModularityKit.Mutator.Governance.Redis.Tests/ModularityKit.Mutator.Governance.Redis.Tests.csproj -c Release --no-restore
49-
redis: false
47+
48+
steps:
49+
- uses: actions/checkout@v5
50+
51+
- uses: actions/setup-dotnet@v5
52+
with:
53+
dotnet-version: 10.0.x
54+
55+
- name: Restore
56+
run: dotnet restore ModularityKit.Mutator.slnx
57+
58+
- name: Run ${{ matrix.name }}
59+
run: ${{ matrix.command }}
60+
61+
examples-core:
62+
name: ${{ matrix.name }}
63+
runs-on: ubuntu-latest
64+
needs: build
65+
66+
strategy:
67+
fail-fast: false
68+
matrix:
69+
include:
5070
- name: examples:core / BillingQuotas
5171
command: dotnet run --project Examples/Core/BillingQuotas/BillingQuotas.csproj -c Release --no-restore
52-
redis: false
5372
- name: examples:core / FeatureFlags
5473
command: dotnet run --project Examples/Core/FeatureFlags/FeatureFlags.csproj -c Release --no-restore
55-
redis: false
5674
- name: examples:core / IamRoles
5775
command: dotnet run --project Examples/Core/IamRoles/IamRoles.csproj -c Release --no-restore
58-
redis: false
5976
- name: examples:core / WorkflowApprovals
6077
command: dotnet run --project Examples/Core/WorkflowApprovals/WorkflowApprovals.csproj -c Release --no-restore
61-
redis: false
78+
79+
steps:
80+
- uses: actions/checkout@v5
81+
82+
- uses: actions/setup-dotnet@v5
83+
with:
84+
dotnet-version: 10.0.x
85+
86+
- name: Restore
87+
run: dotnet restore ModularityKit.Mutator.slnx
88+
89+
- name: Run ${{ matrix.name }}
90+
run: ${{ matrix.command }}
91+
92+
examples-governance:
93+
name: ${{ matrix.name }}
94+
runs-on: ubuntu-latest
95+
needs: build
96+
97+
strategy:
98+
fail-fast: false
99+
matrix:
100+
include:
62101
- name: examples:governance / RequestLifecycle
63102
command: dotnet run --project Examples/Governance/RequestLifecycle/RequestLifecycle.csproj -c Release --no-restore
64-
redis: false
65103
- name: examples:governance / GovernedExecution
66104
command: dotnet run --project Examples/Governance/GovernedExecution/GovernedExecution.csproj -c Release --no-restore
67-
redis: false
68105
- name: examples:governance / DecisionTaxonomy
69106
command: dotnet run --project Examples/Governance/DecisionTaxonomy/DecisionTaxonomy.csproj -c Release --no-restore
70-
redis: false
71107
- name: examples:governance / ApprovalWorkflow
72108
command: dotnet run --project Examples/Governance/ApprovalWorkflow/ApprovalWorkflow.csproj -c Release --no-restore
73-
redis: false
74109
- name: examples:governance / VersionedResolution
75110
command: dotnet run --project Examples/Governance/VersionedResolution/VersionedResolution.csproj -c Release --no-restore
76-
redis: false
77111
- name: examples:governance / Queries
78112
command: dotnet run --project Examples/Governance/Queries/Queries.csproj -c Release --no-restore
79-
redis: false
80-
- name: examples:governance / RedisQueries
81-
command: dotnet run --project Examples/Governance/RedisQueries/RedisQueries.csproj -c Release --no-restore
82-
redis: true
83-
redis_workdir: Examples/Governance/RedisQueries
84113

85114
steps:
86115
- uses: actions/checkout@v5
@@ -93,40 +122,61 @@ jobs:
93122
run: dotnet restore ModularityKit.Mutator.slnx
94123

95124
- name: Run ${{ matrix.name }}
96-
if: ${{ !matrix.redis }}
97125
run: ${{ matrix.command }}
98126

127+
examples-governance-redis:
128+
name: examples:governance / RedisQueries
129+
runs-on: ubuntu-latest
130+
needs: build
131+
132+
steps:
133+
- uses: actions/checkout@v5
134+
135+
- uses: actions/setup-dotnet@v5
136+
with:
137+
dotnet-version: 10.0.x
138+
139+
- name: Restore
140+
run: dotnet restore ModularityKit.Mutator.slnx
141+
99142
- name: Start Redis
100-
if: ${{ matrix.redis }}
101-
working-directory: ${{ matrix.redis_workdir }}
143+
working-directory: Examples/Governance/RedisQueries
102144
run: docker compose up -d
103145

104146
- name: Run RedisQueries
105-
if: ${{ matrix.redis }}
106147
env:
107148
MODULARITYKIT_REDIS: localhost:6379
108-
run: ${{ matrix.command }}
149+
run: dotnet run --project Examples/Governance/RedisQueries/RedisQueries.csproj -c Release --no-restore
109150

110151
- name: Stop Redis
111-
if: ${{ always() && matrix.redis }}
112-
working-directory: ${{ matrix.redis_workdir }}
152+
if: ${{ always() }}
153+
working-directory: Examples/Governance/RedisQueries
113154
run: docker compose down
114155

115156
validation-summary:
116157
name: validation summary
117158
runs-on: ubuntu-latest
118159
needs:
119160
- build
120-
- validate
161+
- tests
162+
- examples-core
163+
- examples-governance
164+
- examples-governance-redis
121165
if: always()
122166

123167
steps:
124168
- name: Report job results
125169
run: |
126170
echo "build: ${{ needs.build.result }}"
127-
echo "validate: ${{ needs.validate.result }}"
171+
echo "tests: ${{ needs.tests.result }}"
172+
echo "examples-core: ${{ needs.examples-core.result }}"
173+
echo "examples-governance: ${{ needs.examples-governance.result }}"
174+
echo "examples-governance-redis: ${{ needs.examples-governance-redis.result }}"
128175
129176
if [ "${{ needs.build.result }}" != "success" ] || \
130-
[ "${{ needs.validate.result }}" != "success" ]; then
177+
[ "${{ needs.tests.result }}" != "success" ] || \
178+
[ "${{ needs.examples-core.result }}" != "success" ] || \
179+
[ "${{ needs.examples-governance.result }}" != "success" ] || \
180+
[ "${{ needs.examples-governance-redis.result }}" != "success" ]; then
131181
exit 1
132182
fi

0 commit comments

Comments
 (0)