-
Notifications
You must be signed in to change notification settings - Fork 18
110 lines (93 loc) · 3.61 KB
/
commit_message_format.yml
File metadata and controls
110 lines (93 loc) · 3.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#
# If not stated otherwise in this file or this component's LICENSE file the
# following copyright and licenses apply:
#
# Copyright 2024 Sky UK
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: commit-message-format
# Controls when the workflow will run
on:
# Triggers the workflow on pull request to master and release/* branches
pull_request:
branches: ["master", "release/*"]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This job checks the commit message of the merge
check-commit-message:
name: Check Commit Message
# Runs on ubuntu
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Post commit message comment on PR
uses: mshick/add-pr-comment@v2
with:
message: |
Pull request must be merged with a description containing the required fields,
Summary:
Type: Feature/Fix/Cleanup
Test Plan:
Jira:
If there is no jira releated to this change, please put 'Jira: NO-JIRA'.
Description can be changed by editing the top comment on your pull request and making a new commit.
# Check PR description for 'Summary:' field.
- name: Match 'Summary:'
uses: actions-ecosystem/action-regex-match@v2
id: summary-match
if: failure() || success()
with:
text: ${{ github.event.pull_request.body }}
regex: 'Summary:\s*[\s\S]*?'
flags: gm
- name: Check 'Summary:'
if: (failure() || success()) && (steps.summary-match.outputs.match == '')
run: exit 1
# Check PR description for 'Type: Feature|Fix|Cleanup' field.
- name: Match 'Type:'
uses: actions-ecosystem/action-regex-match@v2
id: type-match
if: failure() || success()
with:
text: ${{ github.event.pull_request.body }}
regex: 'Type:\s*Feature|Fix|Cleanup'
- name: Check 'Type:'
if: (failure() || success()) && (steps.type-match.outputs.match == '')
run: exit 1
# Check PR description for 'Test Plan:' field.
- name: Match 'Test Plan:'
uses: actions-ecosystem/action-regex-match@v2
id: test-plan-match
if: failure() || success()
with:
text: ${{ github.event.pull_request.body }}
regex: 'Test Plan:\s*[\s\S]*?'
- name: Check 'Test Plan:'
if: (failure() || success()) && (steps.test-plan-match.outputs.match == '')
run: exit 1
# Check PR description for 'Jira:' field.
- name: Match 'Jira:'
uses: actions-ecosystem/action-regex-match@v2
id: jira-match
if: failure() || success()
with:
text: ${{ github.event.pull_request.body }}
regex: 'Jira:\s*[\s\S]*?'
- name: Check 'Jira:'
if: (failure() || success()) && (steps.jira-match.outputs.match == '')
run: exit 1
# Print description.
- name: Log string on failure
if: failure()
run: echo ${{ github.event.pull_request.body }}