-
Notifications
You must be signed in to change notification settings - Fork 0
/
action.yml
140 lines (138 loc) · 5.65 KB
/
action.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
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
name: 'Semantic Release'
description: 'Use python semantic release 7 in a composite action. The result is pushed in a pull request, for repositories where the main branch is protected.'
author: 'Zackarie Vinckier <[email protected]>'
inputs:
# Python Project Configuration is expected to be in a pyproject.toml
token:
description: 'GITHUB_TOKEN or a `repo` scoped Personal Access Token (PAT)'
default: ${{ github.token }}
path:
description: >
Relative path under $GITHUB_WORKSPACE to the repository.
Defaults to $GITHUB_WORKSPACE.
add-paths:
description: >
A comma or newline-separated list of file paths to commit.
Paths should follow git's pathspec syntax.
Defaults to adding all new and modified files.
commit-message:
description: 'The message to use when committing changes.'
default: '[create-pull-request] automated change'
committer:
description: >
The committer name and email address in the format `Display Name <[email protected]>`.
Defaults to the GitHub Actions bot user.
default: 'GitHub <[email protected]>'
author:
description: >
The author name and email address in the format `Display Name <[email protected]>`.
Defaults to the user who triggered the workflow run.
default: '${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>'
signoff:
description: 'Add `Signed-off-by` line by the committer at the end of the commit log message.'
default: false
branch:
description: 'The pull request branch name.'
default: 'create-pull-request/patch'
delete-branch:
description: >
Delete the `branch` when closing pull requests, and when undeleted after merging.
Recommend `true`.
default: false
branch-suffix:
description: 'The branch suffix type when using the alternative branching strategy.'
base:
description: >
The pull request base branch.
Defaults to the branch checked out in the workflow.
push-to-fork:
description: >
A fork of the checked out parent repository to which the pull request branch will be pushed.
e.g. `owner/repo-fork`.
The pull request will be created to merge the fork's branch into the parent's base.
title:
description: 'The title of the pull request.'
default: 'Changes by create-pull-request action'
body:
description: 'The body of the pull request.'
default: 'Automated changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action'
body-path:
description: 'The path to a file containing the pull request body. Takes precedence over `body`.'
labels:
description: 'A comma or newline separated list of labels.'
assignees:
description: 'A comma or newline separated list of assignees (GitHub usernames).'
reviewers:
description: 'A comma or newline separated list of reviewers (GitHub usernames) to request a review from.'
team-reviewers:
description: >
A comma or newline separated list of GitHub teams to request a review from.
Note that a `repo` scoped Personal Access Token (PAT) may be required.
milestone:
description: 'The number of the milestone to associate the pull request with.'
draft:
description: 'Create a draft pull request. It is not possible to change draft status after creation except through the web interface'
default: false
runs:
using: "composite"
steps:
- name: Install semantic versionning
shell: bash
run: |
# The old 7.X version is needed
python -m pip install python-semantic-release==7.34.6
- name: Use semver for commit
id: semver
shell: bash
env:
WPATH: ${{ inputs.path }}
AUTHOR: ${{ inputs.committer }}
GITHUB_WORKSPACE: ${{ github.workspace }}
BRANCH: ${{ inputs.base }}
run: |
export WPATH=${WPATH:=$GITHUB_WORKSPACE}
cd "$WPATH"
git config user.name $(echo $AUTHOR | cut -d ' ' -f1)
git config user.email $(echo $AUTHOR | cut -d ' ' -f2)
echo "old_sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
semantic-release version -v DEBUG
echo "new_sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
echo "msg=$(echo '"'$(git log -1 --pretty=%B)'"')" >> "$GITHUB_OUTPUT"
- name: Reset HEAD
shell: bash
if: ${{ steps.semver.outputs.old_sha != steps.semver.outputs.new_sha }}
env:
OLD_SHA: ${{ steps.semver.outputs.old_sha }}
WPATH: ${{ inputs.path }}
run: |
export WPATH=${WPATH:=$GITHUB_WORKSPACE}
cd "$WPATH"
git reset $OLD_SHA
- uses: peter-evans/create-pull-request@v6
if: ${{ steps.semver.outputs.old_sha != steps.semver.outputs.new_sha }}
with:
token: ${{ inputs.token }}
path: ${{ inputs.path }}
add-paths: ${{ inputs.add-path }}
commit-message: ${{ steps.semver.outputs.msg }}
committer: ${{ inputs.committer }}
author: ${{ inputs.author }}
signoff: ${{ inputs.signoff }}
branch: ${{ inputs.branch }}
delete-branch: ${{ inputs.delete-branch }}
branch-suffix: ${{ inputs.branch-suffix }}
base: ${{ inputs.base }}
push-to-fork: ${{ inputs.push-to-fork }}
title: ${{ inputs.title }}
body: ${{ inputs.body }}
body-path: ${{ inputs.body-path }}
labels: ${{ inputs.labels }}
assignees: ${{ inputs.assignees }}
reviewers: ${{ inputs.reviewers }}
team-reviewers: ${{ inputs.team-reviewers }}
milestone: ${{ inputs.milestone }}
draft: ${{ inputs.draft }}
# Ref: https://haya14busa.github.io/github-action-brandings/
branding:
icon: 'check-circle'
color: 'green'