Skip to content

Commit 59721b9

Browse files
Refactor build workflow to use anchors for reusable steps
1 parent cf73e0f commit 59721b9

File tree

1 file changed

+53
-56
lines changed

1 file changed

+53
-56
lines changed

.github/workflows/build.yml

Lines changed: 53 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@ jobs:
2121
id-token: write
2222
contents: write
2323
steps:
24-
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
25-
- uses: jdx/mise-action@9dc7d5dd454262207dea3ab5a06a3df6afc8ff26 # v3.4.1
24+
- &checkout-simple
25+
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
26+
- &mise-install
27+
uses: jdx/mise-action@9dc7d5dd454262207dea3ab5a06a3df6afc8ff26 # v3.4.1
2628
with:
2729
version: 2025.7.12
2830
- &checkout-build-logic
@@ -65,10 +67,8 @@ jobs:
6567
id-token: write
6668
contents: write
6769
steps:
68-
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
69-
- uses: jdx/mise-action@9dc7d5dd454262207dea3ab5a06a3df6afc8ff26 # v3.4.1
70-
with:
71-
version: 2025.7.12
70+
- *checkout-simple
71+
- *mise-install
7272
- *checkout-build-logic
7373
- *create-gradle-user-home
7474
- *cache-gradle-dependencies
@@ -104,12 +104,8 @@ jobs:
104104
run: |
105105
git config --global core.autocrlf false
106106
git config --global core.eol lf
107-
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
108-
with:
109-
submodules: false
110-
- uses: jdx/mise-action@9dc7d5dd454262207dea3ab5a06a3df6afc8ff26 # v3.4.1
111-
with:
112-
version: 2025.7.12
107+
- *checkout-simple
108+
- *mise-install
113109
- *checkout-build-logic
114110
- *create-gradle-user-home
115111
- *cache-gradle-dependencies
@@ -144,12 +140,11 @@ jobs:
144140
matrix:
145141
SQ_VERSION: [LATEST_RELEASE, DEV]
146142
steps:
147-
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
143+
- &checkout-submodules
144+
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
148145
with:
149146
submodules: true
150-
- uses: jdx/mise-action@9dc7d5dd454262207dea3ab5a06a3df6afc8ff26 # v3.4.1
151-
with:
152-
version: 2025.7.12
147+
- *mise-install
153148
- *create-gradle-user-home
154149
- *cache-gradle-dependencies
155150
- &setup-orchestator-home
@@ -164,21 +159,28 @@ jobs:
164159
path: ${{ env.ORCHESTRATOR_HOME }}
165160
key: orchestrator-${{ env.TODAY }}
166161
enableCrossOsArchive: true
167-
- uses: SonarSource/vault-action-wrapper@v3
162+
- &orchestrator-secrets
163+
uses: SonarSource/vault-action-wrapper@v3
168164
id: secrets
169165
with:
170166
secrets: |
171167
development/artifactory/token/{REPO_OWNER_NAME_DASH}-public-reader access_token | ARTIFACTORY_ACCESS_TOKEN;
172168
development/github/token/licenses-ro token | GITHUB_TOKEN;
173-
- name: Run Integration Tests
169+
- name: Run QA Plugin Tests
170+
uses: SonarSource/ci-github-actions/build-gradle@v1
174171
env:
175172
ARTIFACTORY_ACCESS_TOKEN: ${{ fromJSON(steps.secrets.outputs.vault).ARTIFACTORY_ACCESS_TOKEN }}
176173
GITHUB_TOKEN: ${{ fromJSON(steps.secrets.outputs.vault).GITHUB_TOKEN }}
177-
GRADLE_TASK: its:plugin:integrationTest
178174
KEEP_ORCHESTRATOR_RUNNING: "true"
179-
SQ_VERSION: ${{ matrix.SQ_VERSION }}
180-
run: |
181-
./gradlew "${GRADLE_TASK}" "-Dsonar.runtimeVersion=${SQ_VERSION}" --info --build-cache --console plain --no-daemon
175+
with:
176+
deploy-pull-request: false
177+
skip-tests: false
178+
use-develocity: true
179+
gradle-args: >
180+
its:plugin:integrationTest
181+
-Dsonar.runtimeVersion=LATEST_RELEASE
182+
-x sonar
183+
-x artifactoryPublish
182184
- name: Upload test results
183185
if: always() && ! cancelled()
184186
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
@@ -204,32 +206,29 @@ jobs:
204206
matrix:
205207
PHP_PROJECT: [Flysystem, Monica, PhpCodeSniffer, PhpMailer, Psysh, PhpWord, RubixML, PhpSpreadsheet]
206208
steps:
207-
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
208-
with:
209-
submodules: true
210-
- uses: jdx/mise-action@9dc7d5dd454262207dea3ab5a06a3df6afc8ff26 # v3.4.1
211-
with:
212-
version: 2025.7.12
209+
- *checkout-submodules
210+
- *mise-install
213211
- *create-gradle-user-home
214212
- *cache-gradle-dependencies
215213
- *setup-orchestator-home
216214
- *cache-orchestrator
217-
- uses: SonarSource/vault-action-wrapper@v3
218-
id: secrets
219-
with:
220-
secrets: |
221-
development/artifactory/token/{REPO_OWNER_NAME_DASH}-public-reader access_token | ARTIFACTORY_ACCESS_TOKEN;
222-
development/github/token/licenses-ro token | GITHUB_TOKEN;
223-
- name: Run Ruling Integration Tests
215+
- *orchestrator-secrets
216+
- name: Run QA Ruling Tests
217+
uses: SonarSource/ci-github-actions/build-gradle@v1
224218
env:
225219
ARTIFACTORY_ACCESS_TOKEN: ${{ fromJSON(steps.secrets.outputs.vault).ARTIFACTORY_ACCESS_TOKEN }}
226220
GITHUB_TOKEN: ${{ fromJSON(steps.secrets.outputs.vault).GITHUB_TOKEN }}
227-
GRADLE_TASK: its:ruling:integrationTest
228221
KEEP_ORCHESTRATOR_RUNNING: "true"
229-
SQ_VERSION: LATEST_RELEASE
230-
PHP_PROJECT: ${{ matrix.PHP_PROJECT }}
231-
run: |
232-
./gradlew "${GRADLE_TASK}" "-Dsonar.runtimeVersion=${SQ_VERSION}" --tests "PhpGeneralRulingTest.test${PHP_PROJECT}" --info --build-cache --console plain --no-daemon
222+
with:
223+
deploy-pull-request: false
224+
skip-tests: false
225+
use-develocity: true
226+
gradle-args: >
227+
its:ruling:integrationTest
228+
-Dsonar.runtimeVersion=LATEST_RELEASE
229+
--tests "PhpGeneralRulingTest.test${{ matrix.PHP_PROJECT }}"
230+
-x sonar
231+
-x artifactoryPublish
233232
- name: Upload test results
234233
if: always() && ! cancelled()
235234
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
@@ -252,31 +251,29 @@ jobs:
252251
id-token: write
253252
contents: write
254253
steps:
255-
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
256-
with:
257-
submodules: true
258-
- uses: jdx/mise-action@9dc7d5dd454262207dea3ab5a06a3df6afc8ff26 # v3.4.1
259-
with:
260-
version: 2025.7.12
254+
- *checkout-submodules
255+
- *mise-install
261256
- *create-gradle-user-home
262257
- *cache-gradle-dependencies
263258
- *setup-orchestator-home
264259
- *cache-orchestrator
265-
- uses: SonarSource/vault-action-wrapper@v3
266-
id: secrets
267-
with:
268-
secrets: |
269-
development/artifactory/token/{REPO_OWNER_NAME_DASH}-public-reader access_token | ARTIFACTORY_ACCESS_TOKEN;
270-
development/github/token/licenses-ro token | GITHUB_TOKEN;
260+
- *orchestrator-secrets
271261
- name: Run PR Analysis Integration Tests
262+
uses: SonarSource/ci-github-actions/build-gradle@v1
272263
env:
273264
ARTIFACTORY_ACCESS_TOKEN: ${{ fromJSON(steps.secrets.outputs.vault).ARTIFACTORY_ACCESS_TOKEN }}
274265
GITHUB_TOKEN: ${{ fromJSON(steps.secrets.outputs.vault).GITHUB_TOKEN }}
275-
GRADLE_TASK: its:ruling:integrationTest
276266
KEEP_ORCHESTRATOR_RUNNING: "true"
277-
SQ_VERSION: LATEST_RELEASE
278-
run: |
279-
./gradlew "${GRADLE_TASK}" "-Dsonar.runtimeVersion=${SQ_VERSION}" --tests "PhpPrAnalysisTest" --info --build-cache --console plain --no-daemon
267+
with:
268+
deploy-pull-request: false
269+
skip-tests: false
270+
use-develocity: true
271+
gradle-args: >
272+
its:ruling:integrationTest
273+
-Dsonar.runtimeVersion=LATEST_RELEASE
274+
--tests "PhpPrAnalysisTest"
275+
-x sonar
276+
-x artifactoryPublish
280277
- name: Upload test results
281278
if: always() && ! cancelled()
282279
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0

0 commit comments

Comments
 (0)