diff --git a/.github/workflows/commit-message-check.yaml b/.github/workflows/commit-message-check.yaml new file mode 100644 index 0000000000..f94f722d6a --- /dev/null +++ b/.github/workflows/commit-message-check.yaml @@ -0,0 +1,65 @@ +name: Commit Message Check +on: + pull_request: + types: + - opened + - reopened + - synchronize + +env: + error_msg: |+ + See the document below for help on formatting commits for the project. + + https://github.com/kata-containers/community/blob/master/CONTRIBUTING.md#patch-forma + +jobs: + commit-message-check: + runs-on: ubuntu-latest + name: Commit Message Check + steps: + - name: Get PR Commits + id: 'get-pr-commits' + uses: tim-actions/get-pr-commits@v1.0.0 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: DCO Check + uses: tim-actions/dco@2fd0504dc0d27b33f542867c300c60840c6dcb20 + with: + commits: ${{ steps.get-pr-commits.outputs.commits }} + + - name: Check Subject Line Length + uses: tim-actions/commit-message-checker-with-regex@v0.3.0 + with: + commits: ${{ steps.get-pr-commits.outputs.commits }} + pattern: '^.{0,75}(\n.*)*$' + error: 'Subject too long (max 75)' + post_error: ${{ env.error_msg }} + + - name: Check Body Line Length + if: ${{ success() || failure() }} + uses: tim-actions/commit-message-checker-with-regex@v0.3.0 + with: + commits: ${{ steps.get-pr-commits.outputs.commits }} + pattern: '^.+(\n.{0,72})*$|^.+\n\s*[^a-zA-Z\s\n]' + error: 'Body line too long (max 72)' + post_error: ${{ env.error_msg }} + + - name: Check Fixes + if: ${{ success() || failure() }} + uses: tim-actions/commit-message-checker-with-regex@v0.3.0 + with: + commits: ${{ steps.get-pr-commits.outputs.commits }} + pattern: '\s*Fixes\s*:?\s*(#\d+|github\.com\/kata-containers\/[a-z-.]*#\d+)' + flags: 'i' + error: 'No "Fixes" found' + post_error: ${{ env.error_msg }} + + - name: Check Subsystem + if: ${{ success() || failure() }} + uses: tim-actions/commit-message-checker-with-regex@v0.3.0 + with: + commits: ${{ steps.get-pr-commits.outputs.commits }} + pattern: '^[\h]*([^:\h]+)[\h]*:' + error: 'Failed to find subsystem in subject' + post_error: ${{ env.error_msg }} diff --git a/.github/workflows/dco-check.yaml b/.github/workflows/dco-check.yaml deleted file mode 100644 index 159dec2e1a..0000000000 --- a/.github/workflows/dco-check.yaml +++ /dev/null @@ -1,22 +0,0 @@ -name: DCO check -on: - pull_request: - types: - - opened - - reopened - - synchronize - -jobs: - dco_check_job: - runs-on: ubuntu-latest - name: DCO Check - steps: - - name: Get PR Commits - id: 'get-pr-commits' - uses: tim-actions/get-pr-commits@ed97a21c3f83c3417e67a4733ea76887293a2c8f - with: - token: ${{ secrets.GITHUB_TOKEN }} - - name: DCO Check - uses: tim-actions/dco@2fd0504dc0d27b33f542867c300c60840c6dcb20 - with: - commits: ${{ steps.get-pr-commits.outputs.commits }}