@@ -2,8 +2,6 @@ name: PR Check
22
33on :
44 pull_request :
5- push :
6- branches : [ main, master, develop ]
75
86permissions :
97 contents : read
@@ -31,84 +29,58 @@ jobs:
3129 - name : Build ${{ matrix.configuration }}
3230 run : dotnet build ModularityKit.Mutator.slnx -c ${{ matrix.configuration }} --no-restore
3331
34- tests :
32+ validate :
3533 name : ${{ matrix.name }}
3634 runs-on : ubuntu-latest
35+ needs : build
3736
3837 strategy :
3938 fail-fast : false
4039 matrix :
4140 include :
4241 - name : test:core
4342 command : dotnet test Tests/ModularityKit.Mutator.Tests/ModularityKit.Mutator.Tests.csproj -c Release --no-restore
43+ redis : false
4444 - name : test:governance
4545 command : dotnet test Tests/ModularityKit.Mutator.Governance.Tests/ModularityKit.Mutator.Governance.Tests.csproj -c Release --no-restore
46+ redis : false
4647 - name : test:governance-redis
4748 command : dotnet test Tests/ModularityKit.Mutator.Governance.Redis.Tests/ModularityKit.Mutator.Governance.Redis.Tests.csproj -c Release --no-restore
48-
49- steps :
50- - uses : actions/checkout@v5
51-
52- - uses : actions/setup-dotnet@v5
53- with :
54- dotnet-version : 10.0.x
55-
56- - name : Restore
57- run : dotnet restore ModularityKit.Mutator.slnx
58-
59- - name : Run ${{ matrix.name }}
60- run : ${{ matrix.command }}
61-
62- examples-core :
63- name : ${{ matrix.name }}
64- runs-on : ubuntu-latest
65-
66- strategy :
67- fail-fast : false
68- matrix :
69- include :
49+ redis : false
7050 - name : examples:core / BillingQuotas
7151 command : dotnet run --project Examples/Core/BillingQuotas/BillingQuotas.csproj -c Release --no-restore
52+ redis : false
7253 - name : examples:core / FeatureFlags
7354 command : dotnet run --project Examples/Core/FeatureFlags/FeatureFlags.csproj -c Release --no-restore
55+ redis : false
7456 - name : examples:core / IamRoles
7557 command : dotnet run --project Examples/Core/IamRoles/IamRoles.csproj -c Release --no-restore
58+ redis : false
7659 - name : examples:core / WorkflowApprovals
7760 command : dotnet run --project Examples/Core/WorkflowApprovals/WorkflowApprovals.csproj -c Release --no-restore
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-
96- strategy :
97- fail-fast : false
98- matrix :
99- include :
61+ redis : false
10062 - name : examples:governance / RequestLifecycle
10163 command : dotnet run --project Examples/Governance/RequestLifecycle/RequestLifecycle.csproj -c Release --no-restore
64+ redis : false
10265 - name : examples:governance / GovernedExecution
10366 command : dotnet run --project Examples/Governance/GovernedExecution/GovernedExecution.csproj -c Release --no-restore
67+ redis : false
10468 - name : examples:governance / DecisionTaxonomy
10569 command : dotnet run --project Examples/Governance/DecisionTaxonomy/DecisionTaxonomy.csproj -c Release --no-restore
70+ redis : false
10671 - name : examples:governance / ApprovalWorkflow
10772 command : dotnet run --project Examples/Governance/ApprovalWorkflow/ApprovalWorkflow.csproj -c Release --no-restore
73+ redis : false
10874 - name : examples:governance / VersionedResolution
10975 command : dotnet run --project Examples/Governance/VersionedResolution/VersionedResolution.csproj -c Release --no-restore
76+ redis : false
11077 - name : examples:governance / Queries
11178 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
11284
11385 steps :
11486 - uses : actions/checkout@v5
@@ -121,32 +93,40 @@ jobs:
12193 run : dotnet restore ModularityKit.Mutator.slnx
12294
12395 - name : Run ${{ matrix.name }}
96+ if : ${{ !matrix.redis }}
12497 run : ${{ matrix.command }}
12598
126- examples-governance-redis :
127- name : examples:governance / RedisQueries
128- runs-on : ubuntu-latest
129-
130- steps :
131- - uses : actions/checkout@v5
132-
133- - uses : actions/setup-dotnet@v5
134- with :
135- dotnet-version : 10.0.x
136-
137- - name : Restore
138- run : dotnet restore ModularityKit.Mutator.slnx
139-
14099 - name : Start Redis
141- working-directory : Examples/Governance/RedisQueries
100+ if : ${{ matrix.redis }}
101+ working-directory : ${{ matrix.redis_workdir }}
142102 run : docker compose up -d
143103
144104 - name : Run RedisQueries
105+ if : ${{ matrix.redis }}
145106 env :
146107 MODULARITYKIT_REDIS : localhost:6379
147- run : dotnet run --project Examples/Governance/RedisQueries/RedisQueries.csproj -c Release --no-restore
108+ run : ${{ matrix.command }}
148109
149110 - name : Stop Redis
150- if : ${{ always() }}
151- working-directory : Examples/Governance/RedisQueries
111+ if : ${{ always() && matrix.redis }}
112+ working-directory : ${{ matrix.redis_workdir }}
152113 run : docker compose down
114+
115+ validation-summary :
116+ name : validation summary
117+ runs-on : ubuntu-latest
118+ needs :
119+ - build
120+ - validate
121+ if : always()
122+
123+ steps :
124+ - name : Report job results
125+ run : |
126+ echo "build: ${{ needs.build.result }}"
127+ echo "validate: ${{ needs.validate.result }}"
128+
129+ if [ "${{ needs.build.result }}" != "success" ] || \
130+ [ "${{ needs.validate.result }}" != "success" ]; then
131+ exit 1
132+ fi
0 commit comments