Skip to content

Commit adbf6bc

Browse files
committed
feat(ci): enhance CI workflows to include pull request number and skip schema version check logic
1 parent 85c7f82 commit adbf6bc

2 files changed

Lines changed: 43 additions & 4 deletions

File tree

.github/workflows/cicd-1-pull-request.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,15 @@ jobs:
9595
id-token: write
9696
contents: write
9797
packages: read
98+
pull-requests: read
9899
with:
99100
build_datetime: "${{ needs.metadata.outputs.build_datetime }}"
100101
build_timestamp: "${{ needs.metadata.outputs.build_timestamp }}"
101102
build_epoch: "${{ needs.metadata.outputs.build_epoch }}"
102103
nodejs_version: "${{ needs.metadata.outputs.nodejs_version }}"
103104
pnpm_version: "${{ needs.metadata.outputs.pnpm_version }}"
104105
python_version: "${{ needs.metadata.outputs.python_version }}"
106+
pr_number: "${{ needs.metadata.outputs.pr_number }}"
105107
terraform_version: "${{ needs.metadata.outputs.terraform_version }}"
106108
version: "${{ needs.metadata.outputs.version }}"
107109
secrets: inherit

.github/workflows/stage-1-commit.yaml

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ on:
2727
description: "Python version, set by the CI/CD pipeline workflow"
2828
required: true
2929
type: string
30+
pr_number:
31+
description: "Pull request number for the current branch when one exists"
32+
required: false
33+
type: string
3034
#TODO - Re-visit Trivy usage https://nhsd-jira.digital.nhs.uk/browse/CCM-15549
3135
# skip_trivy_package:
3236
# description: "Skip Trivy package scan when true"
@@ -268,10 +272,41 @@ jobs:
268272
echo "Detected package version $version in main branch"
269273
echo "main_version=$version" >> $GITHUB_OUTPUT
270274
275+
detect-skip-schema-version-check:
276+
name: Check whether schema version checks should be skipped
277+
runs-on: ubuntu-latest
278+
permissions:
279+
pull-requests: read
280+
outputs:
281+
skip_schema_version_check: ${{ steps.check.outputs.skip_schema_version_check }}
282+
steps:
283+
- name: Check for skip-schema-version-check label
284+
id: check
285+
env:
286+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
287+
run: |
288+
if [[ -z "${{ inputs.pr_number }}" ]]; then
289+
echo "No pull request number was provided - schema version checks will run"
290+
echo "skip_schema_version_check=false" >> $GITHUB_OUTPUT
291+
exit 0
292+
fi
293+
294+
labels=$(gh pr view "${{ inputs.pr_number }}" --json labels --jq '.labels[].name' || true)
295+
296+
if printf '%s\n' "$labels" | grep -Fxq 'skip-schema-version-check'; then
297+
echo "PR #${{ inputs.pr_number }} has the skip-schema-version-check label - schema version checks will be skipped"
298+
echo "skip_schema_version_check=true" >> $GITHUB_OUTPUT
299+
else
300+
echo "PR #${{ inputs.pr_number }} does not have the skip-schema-version-check label - schema version checks will run"
301+
echo "skip_schema_version_check=false" >> $GITHUB_OUTPUT
302+
fi
303+
271304
check-schema-version-change:
272305
name: Check event schema version has been updated
273-
needs: detect-event-schema-package-changes
274-
if: needs.detect-event-schema-package-changes.outputs.changed == 'true'
306+
needs:
307+
- detect-event-schema-package-changes
308+
- detect-skip-schema-version-check
309+
if: needs.detect-event-schema-package-changes.outputs.changed == 'true' && needs.detect-skip-schema-version-check.outputs.skip_schema_version_check != 'true'
275310
runs-on: ubuntu-latest
276311
permissions:
277312
contents: read
@@ -295,8 +330,10 @@ jobs:
295330
296331
check-event-schemas-version-change:
297332
name: Check for event schemas package version change
298-
needs: detect-event-schema-package-changes
299-
if: needs.detect-event-schema-package-changes.outputs.changed == 'true'
333+
needs:
334+
- detect-event-schema-package-changes
335+
- detect-skip-schema-version-check
336+
if: needs.detect-event-schema-package-changes.outputs.changed == 'true' && needs.detect-skip-schema-version-check.outputs.skip_schema_version_check != 'true'
300337
outputs:
301338
version_changed: ${{ steps.check-version.outputs.version_changed }}
302339
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)