Skip to content

Commit 912fa2f

Browse files
committed
Stage CI checks with dependent job graph
1 parent 3e751f0 commit 912fa2f

2 files changed

Lines changed: 124 additions & 102 deletions

File tree

.github/workflows/examples-check.yml

Lines changed: 0 additions & 102 deletions
This file was deleted.

.github/workflows/pr-check.yml

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ jobs:
3434
tests:
3535
name: ${{ matrix.name }}
3636
runs-on: ubuntu-latest
37+
needs: build
3738

3839
strategy:
3940
fail-fast: false
@@ -58,3 +59,126 @@ jobs:
5859

5960
- name: Run ${{ matrix.name }}
6061
run: ${{ matrix.command }}
62+
63+
examples-core:
64+
name: ${{ matrix.name }}
65+
runs-on: ubuntu-latest
66+
needs: build
67+
68+
strategy:
69+
fail-fast: false
70+
matrix:
71+
include:
72+
- name: examples:core / BillingQuotas
73+
command: dotnet run --project Examples/Core/BillingQuotas/BillingQuotas.csproj -c Release --no-restore
74+
- name: examples:core / FeatureFlags
75+
command: dotnet run --project Examples/Core/FeatureFlags/FeatureFlags.csproj -c Release --no-restore
76+
- name: examples:core / IamRoles
77+
command: dotnet run --project Examples/Core/IamRoles/IamRoles.csproj -c Release --no-restore
78+
- name: examples:core / WorkflowApprovals
79+
command: dotnet run --project Examples/Core/WorkflowApprovals/WorkflowApprovals.csproj -c Release --no-restore
80+
81+
steps:
82+
- uses: actions/checkout@v5
83+
84+
- uses: actions/setup-dotnet@v5
85+
with:
86+
dotnet-version: 10.0.x
87+
88+
- name: Restore
89+
run: dotnet restore ModularityKit.Mutator.slnx
90+
91+
- name: Run ${{ matrix.name }}
92+
run: ${{ matrix.command }}
93+
94+
examples-governance:
95+
name: ${{ matrix.name }}
96+
runs-on: ubuntu-latest
97+
needs: build
98+
99+
strategy:
100+
fail-fast: false
101+
matrix:
102+
include:
103+
- name: examples:governance / RequestLifecycle
104+
command: dotnet run --project Examples/Governance/RequestLifecycle/RequestLifecycle.csproj -c Release --no-restore
105+
- name: examples:governance / GovernedExecution
106+
command: dotnet run --project Examples/Governance/GovernedExecution/GovernedExecution.csproj -c Release --no-restore
107+
- name: examples:governance / DecisionTaxonomy
108+
command: dotnet run --project Examples/Governance/DecisionTaxonomy/DecisionTaxonomy.csproj -c Release --no-restore
109+
- name: examples:governance / ApprovalWorkflow
110+
command: dotnet run --project Examples/Governance/ApprovalWorkflow/ApprovalWorkflow.csproj -c Release --no-restore
111+
- name: examples:governance / VersionedResolution
112+
command: dotnet run --project Examples/Governance/VersionedResolution/VersionedResolution.csproj -c Release --no-restore
113+
- name: examples:governance / Queries
114+
command: dotnet run --project Examples/Governance/Queries/Queries.csproj -c Release --no-restore
115+
116+
steps:
117+
- uses: actions/checkout@v5
118+
119+
- uses: actions/setup-dotnet@v5
120+
with:
121+
dotnet-version: 10.0.x
122+
123+
- name: Restore
124+
run: dotnet restore ModularityKit.Mutator.slnx
125+
126+
- name: Run ${{ matrix.name }}
127+
run: ${{ matrix.command }}
128+
129+
examples-governance-redis:
130+
name: examples:governance / RedisQueries
131+
runs-on: ubuntu-latest
132+
needs: build
133+
134+
steps:
135+
- uses: actions/checkout@v5
136+
137+
- uses: actions/setup-dotnet@v5
138+
with:
139+
dotnet-version: 10.0.x
140+
141+
- name: Restore
142+
run: dotnet restore ModularityKit.Mutator.slnx
143+
144+
- name: Start Redis
145+
working-directory: Examples/Governance/RedisQueries
146+
run: docker compose up -d
147+
148+
- name: Run RedisQueries
149+
env:
150+
MODULARITYKIT_REDIS: localhost:6379
151+
run: dotnet run --project Examples/Governance/RedisQueries/RedisQueries.csproj -c Release --no-restore
152+
153+
- name: Stop Redis
154+
if: ${{ always() }}
155+
working-directory: Examples/Governance/RedisQueries
156+
run: docker compose down
157+
158+
validation-summary:
159+
name: validation summary
160+
runs-on: ubuntu-latest
161+
needs:
162+
- build
163+
- tests
164+
- examples-core
165+
- examples-governance
166+
- examples-governance-redis
167+
if: always()
168+
169+
steps:
170+
- name: Report job results
171+
run: |
172+
echo "build: ${{ needs.build.result }}"
173+
echo "tests: ${{ needs.tests.result }}"
174+
echo "examples-core: ${{ needs.examples-core.result }}"
175+
echo "examples-governance: ${{ needs.examples-governance.result }}"
176+
echo "examples-governance-redis: ${{ needs.examples-governance-redis.result }}"
177+
178+
if [ "${{ needs.build.result }}" != "success" ] || \
179+
[ "${{ needs.tests.result }}" != "success" ] || \
180+
[ "${{ needs.examples-core.result }}" != "success" ] || \
181+
[ "${{ needs.examples-governance.result }}" != "success" ] || \
182+
[ "${{ needs.examples-governance-redis.result }}" != "success" ]; then
183+
exit 1
184+
fi

0 commit comments

Comments
 (0)