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