-
Notifications
You must be signed in to change notification settings - Fork 13
73 lines (63 loc) · 3.36 KB
/
main_master_branch_protection.yml
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
name: PR to master branch from patch/release branch only
on:
pull_request:
branches:
- master
- main
jobs:
check_target:
runs-on: ubuntu-latest
name: Check Target branch
steps:
# PRs to the repository master branch are only ok if coming from any patch or release branch
- name: Check PRs
run: |
{ [[ $GITHUB_HEAD_REF = *"release"* ]]; } || [[ $GITHUB_HEAD_REF == *"patch"* ]]
# If the above check failed, post a comment on the PR explaining the failure
# NOTE - this may not work if the PR is coming from a fork, due to limitations in GitHub actions secrets
- name: Post PR comment
if: failure()
uses: mshick/add-pr-comment@v1
with:
message: |
Hi @${{ github.event.pull_request.user.login }},
It looks like this pull-request is has been made against the ${{github.event.pull_request.head.repo.full_name}} `master` or `main` branch.
The `master`/`main` branch should always contain code from the latest release.
Because of this, PRs to `master`/`main` are only allowed if they come from any ${{github.event.pull_request.head.repo.full_name}} `release` or `patch` branch.
You do not need to close this PR, you can change the target branch to `development` by clicking the _"Edit"_ button at the top of this page.
Thanks again for your contribution!
repo-token: ${{ secrets.GITHUB_TOKEN }}
allow-repeats: false
check_version:
name: No SNAPSHOT version on master branch
runs-on: ubuntu-latest
steps:
- name: Set up Python
uses: actions/[email protected]
with:
python-version: "3.8"
# PRs to the repository master branch are only ok if coming from any patch or release branch
- name: Install mlf-core
run: pip install mlf-core
- name: Check project version
run: |
PROJECTVERSION=$(mlf-core bump-version --project-version . | tail -n1)
echo $PROJECTVERSION;
if [[ $PROJECTVERSION == *"SNAPSHOT"* ]];then
exit -1
else
exit 0
fi
# If the above check failed, post a comment on the PR explaining the failure
# NOTE - this may not work if the PR is coming from a fork, due to limitations in GitHub actions secrets
- name: Post PR comment
if: failure()
uses: mshick/add-pr-comment@v1
with:
message: |
Hi @${{ github.event.pull_request.user.login }},
It looks like this pull-request is has been made against the ${{github.event.pull_request.head.repo.full_name}} `master`/`main` branch.
A version check determined that you are using a SNAPSHOT version.
The `master`/`main` branch should never have any SNAPSHOT versions, since only fully stable code should be on the `master`/`main` branch.
repo-token: ${{ secrets.GITHUB_TOKEN }}
allow-repeats: false