Skip to content

Commit

Permalink
Build: [AEA-4506] - Move to communal qc. Fix pr link (#244)
Browse files Browse the repository at this point in the history
## Summary

- 🤖 Operational or Infrastructure Change

### Details

Replace the `quality-checks.yml` file in the repo with the communal one
shared across all EPS projects
  • Loading branch information
wildjames authored Oct 23, 2024
1 parent 62bcb63 commit 638598a
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 107 deletions.
10 changes: 4 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@ on:

jobs:
quality_checks:
uses: ./.github/workflows/quality_checks.yml
with:
BRANCH_NAME: main
uses: NHSDigital/eps-workflow-quality-checks/.github/workflows/[email protected]
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

Expand All @@ -27,7 +25,7 @@ jobs:
uses: asdf-vm/actions/setup@05e0d2ed97b598bfce82fd30daf324ae0c4570e6
with:
asdf_branch: v0.11.3

- name: Cache asdf
uses: actions/cache@v4
with:
Expand All @@ -42,8 +40,8 @@ jobs:
with:
asdf_branch: v0.11.3
env:
PYTHON_CONFIGURE_OPTS: --enable-shared
PYTHON_CONFIGURE_OPTS: --enable-shared

- name: Install node packages
run: |
make install-node
Expand Down
66 changes: 39 additions & 27 deletions .github/workflows/pr_link.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,46 @@
name: PR Title Check

name: PR Link ticket
on:
workflow_call:

pull_request:
types: [opened]
jobs:
pr_title_format_check:
link-ticket:
runs-on: ubuntu-latest
env:
REF: ${{ github.event.pull_request.head.ref }}
steps:
- name: Check PR Title is Prefixed with Change Type
env:
PR_TITLE: ${{ github.event.pull_request.title }}
- name: Check ticket name conforms to requirements
run: echo "$REF" | grep -i -E -q "(aea-[0-9]+)|(apm-[0-9]+)|(apmspii-[0-9]+)|(adz-[0-9]+)|(amb-[0-9]+)|(dependabot\/)"
continue-on-error: true

- name: Grab ticket name
if: contains(github.event.pull_request.head.ref, 'aea-') || contains(github.event.pull_request.head.ref, 'AEA-') || contains(github.event.pull_request.head.ref, 'apm-') || contains(github.event.pull_request.head.ref, 'APM-') || contains(github.event.pull_request.head.ref, 'apmspii-') || contains(github.event.pull_request.head.ref, 'APMSPII-') || contains(github.event.pull_request.head.ref, 'adz-') || contains(github.event.pull_request.head.ref, 'ADZ-') || contains(github.event.pull_request.head.ref, 'amb-') || contains(github.event.pull_request.head.ref, 'AMB-')
continue-on-error: true
run: |
if [[ "$PR_TITLE" =~ ^(Fix|Update|New|Breaking|Docs|Build|Upgrade|Chore):.*$ ]]; then
echo "PR title is prefixed with change type."
else
echo "PR title is not prefixed with change type."
echo "Please prefix your PR title with a change type (Fix, Update, New, Breaking, Docs, Build, Upgrade, Chore)."
echo "See the contributing guide for more details:"
echo "https://github.com/NHSDigital/nhs-eps-spine-client/blob/main/CONTRIBUTING.md"
exit 1
fi
# Match ticket name patterns
REGEX='
(aea-[0-9]+)|
(apm-[0-9]+)|
(apmspii-[0-9]+)|
(adz-[0-9]+)|
(amb-[0-9]+)
'
- name: Check PR Title contains Ticket/Dependabot Reference
# Remove whitespace and newlines from the regex
REGEX=$(echo "$REGEX" | tr -d '[:space:]')
# Extract the ticket name and convert to uppercase
TICKET_NAME=$(echo "$REF" | grep -i -E -o "$REGEX" | tr '[:lower:]' '[:upper:]')
# Set the environment variable
echo "TICKET_NAME=$TICKET_NAME" >> "$GITHUB_ENV"
- name: Comment on PR with link to JIRA ticket
if: contains(github.event.pull_request.head.ref, 'aea-') || contains(github.event.pull_request.head.ref, 'AEA-') || contains(github.event.pull_request.head.ref, 'apm-') || contains(github.event.pull_request.head.ref, 'APM-') || contains(github.event.pull_request.head.ref, 'apmspii-') || contains(github.event.pull_request.head.ref, 'APMSPII-') || contains(github.event.pull_request.head.ref, 'adz-') || contains(github.event.pull_request.head.ref, 'ADZ-') || contains(github.event.pull_request.head.ref, 'amb-') || contains(github.event.pull_request.head.ref, 'AMB-')
continue-on-error: true
uses: unsplash/comment-on-pr@master
env:
PR_TITLE: ${{ github.event.pull_request.title }}
run: |
if [[ "$PR_TITLE" =~ ^.*:.*\[([A-Z]+-[0-9]+|dependabot)\].*-.*$ ]]; then
echo "PR title contains ticket or dependabot reference."
else
echo "PR title does not contain ticket or dependabot reference."
echo "Please ensure PR title contains a ticket (eg. 'Fix: [AEA-####] - ...', or 'Chore: [dependabot] - ...')."
exit 1
fi
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
msg: |
This branch is work on a ticket in an NHS Digital JIRA Project. Here's a handy link to the ticket:
# [${{ env.TICKET_NAME }}](https://nhsd-jira.digital.nhs.uk/browse/${{ env.TICKET_NAME }})
4 changes: 1 addition & 3 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@ on:

jobs:
quality_checks:
uses: ./.github/workflows/quality_checks.yml
with:
BRANCH_NAME: ${{ github.event.pull_request.head.ref }}
uses: NHSDigital/eps-workflow-quality-checks/.github/workflows/[email protected]
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

Expand Down
65 changes: 0 additions & 65 deletions .github/workflows/quality_checks.yml

This file was deleted.

4 changes: 1 addition & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ on:

jobs:
quality_checks:
uses: ./.github/workflows/quality_checks.yml
with:
BRANCH_NAME: main
uses: NHSDigital/eps-workflow-quality-checks/.github/workflows/[email protected]
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

Expand Down
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,8 @@ Workflows are in the .github/workflows folder
- `dependabot_auto_approve_and_merge.yml` Workflow to auto merge dependabot updates
- `pr-link.yaml` This workflow template links Pull Requests to Jira tickets and runs when a pull request is opened
- `pr_title_check.yml` Workflow to check the format of a pull request is compliant with the project standards. See [guidelines for contribution](./CONTRIBUTING.md) for details
- `pull_request.yml` Called when pull request is opened or updated. Runs quality_checks.yml
- `quality_checks.yml` Workflow verifies and enhances code quality through setup, dependencies, checks, and SonarCloud scanning
- `release.yml` Run when code is merged to main branch or a tag starting v is pushed. Calls quality_checks.yml
- `pull_request.yml` Called when pull request is opened or updated. Runs [quality_checks](https://github.com/NHSDigital/eps-workflow-quality-checks)
- `release.yml` Run when code is merged to main branch or a tag starting v is pushed. Calls [quality_checks](https://github.com/NHSDigital/eps-workflow-quality-checks)
- `rename_dependabot_prs.yml` Renames dependabot pull requests to comply with project standards

### Running a Release
Expand Down

0 comments on commit 638598a

Please sign in to comment.