1
+ on :
2
+ workflow_call :
3
+ inputs :
4
+ disableCodeFormat :
5
+ required : false
6
+ type : boolean
7
+ default : false
8
+ disableCodeQL :
9
+ required : false
10
+ type : boolean
11
+ default : false
12
+ disableCoverageUpload :
13
+ required : false
14
+ type : boolean
15
+ default : false
16
+ disableTestsOnLinux :
17
+ required : false
18
+ type : boolean
19
+ default : false
20
+ disableTestsOnMacOs :
21
+ required : false
22
+ type : boolean
23
+ default : false
24
+ disableTestsOnWindows :
25
+ required : false
26
+ type : boolean
27
+ default : false
28
+ dotnetLogging :
29
+ required : false
30
+ type : string
31
+ default : minimal
32
+ dotnetVersion :
33
+ required : false
34
+ type : string
35
+ default : |
36
+ 8.x
37
+ 9.x
38
+ dotnetQuality :
39
+ required : false
40
+ type : string
41
+ default : ga
42
+ enableCleanUpDockerDocker :
43
+ required : false
44
+ type : boolean
45
+ default : false
46
+ failFast :
47
+ required : false
48
+ type : boolean
49
+ default : true
50
+ runsOnBuild :
51
+ required : false
52
+ type : string
53
+ default : ' ubuntu-latest'
54
+ solution :
55
+ required : true
56
+ type : string
57
+ secrets :
58
+ FETCH_TOKEN :
59
+ required : false
60
+
61
+ concurrency :
62
+ group : ${{ github.workflow_ref }}@${{ github.ref }}-build-matrix
63
+ cancel-in-progress : true
64
+
65
+ env :
66
+ DOTNET_SYSTEM_GLOBALIZATION_INVARIANT : 1
67
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE : 1
68
+ DOTNET_CLI_TELEMETRY_OPTOUT : 1
69
+ DOTNET_NOLOGO : true
70
+
71
+ permissions :
72
+ actions : read
73
+ contents : read
74
+ pull-requests : write
75
+ security-events : write
76
+
77
+ jobs :
78
+ commitlinter :
79
+ name : Commit Linter
80
+ uses : ./.github/workflows/step-node-commitlint.yml
81
+ secrets : inherit
82
+
83
+ version :
84
+ name : Version Management
85
+ uses : ./.github/workflows/step-dotnet-version.yml
86
+ with :
87
+ dotnet-version : ${{ inputs.dotnetVersion || '8.x' }}
88
+ dotnet-quality : ${{ inputs.dotnetQuality || 'ga' }}
89
+ secrets : inherit
90
+
91
+ format :
92
+ name : Code Formatting
93
+ if : ${{ !inputs.disableCodeFormat }}
94
+ uses : ./.github/workflows/step-dotnet-format.yml
95
+ needs :
96
+ - commitlinter
97
+ with :
98
+ dotnet-logging : ${{ inputs.dotnetLogging || 'minimal' }}
99
+ dotnet-version : ${{ inputs.dotnetVersion || '8.x' }}
100
+ dotnet-quality : ${{ inputs.dotnetQuality || 'ga' }}
101
+ runs-on : ${{ inputs.runsOnBuild || 'ubuntu-latest' }}
102
+ secrets : inherit
103
+
104
+ codeql :
105
+ name : CodeQL Analysis
106
+ if : ${{ !inputs.disableCodeQL }}
107
+ uses : ./.github/workflows/step-dotnet-codeql.yml
108
+ needs :
109
+ - commitlinter
110
+ with :
111
+ dotnet-logging : ${{ inputs.dotnetLogging || 'minimal' }}
112
+ dotnet-version : ${{ inputs.dotnetVersion || '8.x' }}
113
+ dotnet-quality : ${{ inputs.dotnetQuality || 'ga' }}
114
+ runs-on : ${{ inputs.runsOnBuild || 'ubuntu-latest' }}
115
+ solution : ${{ inputs.solution }}
116
+ secrets : inherit
117
+
118
+ tests :
119
+ name : Run Tests
120
+ uses : ./.github/workflows/step-dotnet-tests.yml
121
+ needs :
122
+ - commitlinter
123
+ - version
124
+ strategy :
125
+ fail-fast : ${{ inputs.failFast || true }}
126
+ matrix :
127
+ os :
128
+ - windows-latest
129
+ - ubuntu-latest
130
+ - macos-latest
131
+ exclude :
132
+ - os : ${{ inputs.disableTestsOnMacOs && 'macos-latest' }}
133
+ - os : ${{ inputs.disableTestsOnLinux && 'ubuntu-latest' }}
134
+ - os : ${{ inputs.disableTestsOnWindows && 'windows-latest' }}
135
+ with :
136
+ disableCoverageUpload : ${{ inputs.disableCoverageUpload || false }}
137
+ dotnet-logging : ${{ inputs.dotnetLogging || 'minimal' }}
138
+ dotnet-version : ${{ inputs.dotnetVersion || '8.x' }}
139
+ dotnet-quality : ${{ inputs.dotnetQuality || 'ga' }}
140
+ enableCleanUpDockerDocker : ${{ inputs.enableCleanUpDockerDocker || false }}
141
+ runs-on : ${{ matrix.os }}
142
+ solution : ${{ inputs.solution }}
143
+ solution-version : ${{ needs.version.outputs.solution-version }}
144
+ secrets : inherit
145
+
146
+ build :
147
+ name : Build Solution
148
+ if : ${{ !cancelled() && !failure() }}
149
+ uses : ./.github/workflows/step-dotnet-build.yml
150
+ needs :
151
+ - tests
152
+ - format
153
+ - codeql
154
+ with :
155
+ dotnet-logging : ${{ inputs.dotnetLogging || 'minimal' }}
156
+ dotnet-version : ${{ inputs.dotnetVersion || '8.x' }}
157
+ dotnet-quality : ${{ inputs.dotnetQuality || 'ga' }}
158
+ runs-on : ${{ inputs.runsOnBuild || 'ubuntu-latest' }}
159
+ solution : ${{ inputs.solution }}
160
+ secrets : inherit
161
+
162
+ dependabot :
163
+ name : Dependabot Merge
164
+ if : ${{ !cancelled() && !failure() && github.event_name == 'pull_request' && github.actor == 'dependabot[bot]' }}
165
+ uses : ./.github/workflows/step-dependabot-merge.yml
166
+ needs :
167
+ - build
168
+ secrets : inherit
0 commit comments