diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index a9ab5da..39d6765 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -2,7 +2,7 @@ name: "pr-validation" on: pull_request: - types: [opened, edited, reopened, synchronize] + types: [opened, edited, reopened, synchronize] jobs: validate: @@ -10,43 +10,41 @@ jobs: runs-on: ubuntu-latest steps: - name: Validate PR title - id: . - env: - REGEX: '^(fix|feat|chore)(!)?:\ .+' - run: | - PR_TITLE=$(jq -r .pull_request.title "$GITHUB_EVENT_PATH") - REGEX=$REGEX - DEPENDABOT_REGEX="^Bump\\s.+" - if [[ ! "$PR_TITLE" =~ $REGEX && ! "$PR_TITLE" =~ $DEPENDABOT_REGEX ]]; then - echo "Invalid PR title" - echo "PR_STATUS=false" >> $GITHUB_OUTPUT - exit 1 - else - echo "Valid PR title" - echo "PR_STATUS=true" >> $GITHUB_OUTPUT - fi - - - name: Update Status and Comment on PR - if: always() # Ensure this step runs regardless of previous success or failure - uses: actions/github-script@v6 - env: - REGEX: '^(fix|feat|chore)(!)?:\ .+' - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - const regex = process.env.REGEX; - const context = "PR Title Validation"; - const state = ${{ steps.validation.output.PR_STATUS }} ? "success" : "failure"; - const description = ${{ steps.validation.output.PR_STATUS }} ? "PR title is valid." : `PR title is invalid. Ensure it matches the pattern: ${regex}`; - const prNumber = context.payload.pull_request.number; - const commitSha = context.payload.pull_request.head.sha; - - // Create a status check - await github.rest.repos.createCommitStatus({ - owner: context.repo.owner, - repo: context.repo.repo, - sha: commitSha, - state: state, - context: validate, - description: description - }); \ No newline at end of file + id: validation + env: + REGEX: '^(fix|feat|chore)(!)?:\ .+' + run: | + PR_TITLE=$(jq -r .pull_request.title "$GITHUB_EVENT_PATH") + REGEX=$REGEX + DEPENDABOT_REGEX="^Bump\\s.+" + if [[ ! "$PR_TITLE" =~ $REGEX && ! "$PR_TITLE" =~ $DEPENDABOT_REGEX ]]; then + echo "Invalid PR title" + echo "PR_STATUS=false" >> $GITHUB_OUTPUT + exit 1 + else + echo "Valid PR title" + echo "PR_STATUS=true" >> $GITHUB_OUTPUT + fi + - name: Update Status and Comment on PR + uses: actions/github-script@v6 + env: + REGEX: '^(fix|feat|chore)(!)?:\ .+' + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const regex = process.env.REGEX; + const context = "PR Title Validation"; + const state = ${{ steps.validation.output.PR_STATUS }} ? "success" : "failure"; + const description = ${{ steps.validation.output.PR_STATUS }} ? "PR title is valid." : `PR title is invalid. Ensure it matches the pattern: ${regex}`; + const prNumber = context.payload.pull_request.number; + const commitSha = context.payload.pull_request.head.sha; + + // Create a status check + await github.rest.repos.createCommitStatus({ + owner: context.repo.owner, + repo: context.repo.repo, + sha: commitSha, + state: state, + context: validate, + description: description + });