Skip to content

FIX(pmd): @W-17486457@: Prevent errors when custom rules do not have non-required fields #794

FIX(pmd): @W-17486457@: Prevent errors when custom rules do not have non-required fields

FIX(pmd): @W-17486457@: Prevent errors when custom rules do not have non-required fields #794

Workflow file for this run

name: validate-pr
on:
pull_request:
types: [edited, opened, reopened, synchronize]
defaults:
run:
shell: bash
jobs:
validate_pr_title:
runs-on: ubuntu-latest
steps:
- name: Validate PR Title
if: github.base_ref == 'dev'
run: |
title="${{ github.event.pull_request.title }}"
if [[ "$title" =~ ^(POSTRELEASE|FIX|CHANGE|NEW)([[:space:]]*\([^()]+\))?[[:space:]]*:?[[:space:]]*@W-[[:digit:]]{8,9}@[[:space:]]*.+ ]]; then
echo "Valid PR title: '$title'"
else
echo "::error::Invalid PR title: '$title'. Please following the format: POSTRELEASE|FIX|CHANGE|NEW (__) @W-XXXXXXXX@ Summary"
exit 1
fi
check_for_postrelease_keyword:
runs-on: macos-latest
outputs:
is-postrelease: ${{ steps.main.outputs.is_postrelease }}
steps:
- name: Check for "Postrelease" keyword in PR title.
id: main
if: github.base_ref == 'dev'
run: |
title="${{ github.event.pull_request.title }}"
if [[ "$title" =~ ^POSTRELEASE ]]; then
echo "is_postrelease=true" >> "$GITHUB_OUTPUT"
else
echo "is_postrelease=false" >> "$GITHUB_OUTPUT"
fi
validate_packages:
runs-on: macos-latest
needs: check_for_postrelease_keyword
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: Validate that changed packages are versioned as snapshots
if: ${{ needs.check_for_postrelease_keyword.outputs.is-postrelease == 'false' }}
run: |
BASE_SHA=${{ github.event.pull_request.base.sha }}
HEAD_SHA=${{ github.event.pull_request.head.sha }}
CHANGED_FILES=`git diff --name-only $HEAD_SHA $BASE_SHA`
node ./.github/workflows/verify-pr/validate-changed-package-versions.js "$CHANGED_FILES"
- name: Validate that packages properly depend on each other
if: ${{ needs.check_for_postrelease_keyword.outputs.is-postrelease == 'false' }}
run: |
cd packages
PACKAGE_NAMES=`ls`
cd ..
node ./.github/workflows/verify-pr/validate-package-interdependencies.js "$PACKAGE_NAMES"
run_tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
- uses: actions/setup-node@v4
with:
node-version: 20
- uses: actions/setup-python@v5
with:
python-version: 3.12
- run: npm install
- run: npm run all