You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+23-22Lines changed: 23 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ to automate the automation of releases.
6
6
7
7
## Installation
8
8
9
-
To use this automation in your own repository, copy the [`example/.github`](./examples/.github)
9
+
To use this automation in your own repository, copy the [`examples/.github`](./examples/.github)
10
10
workflows into your own project:
11
11
12
12
```sh
@@ -18,37 +18,38 @@ git add .github
18
18
git commit -m "Added release automation"
19
19
```
20
20
21
+
To get started you need to create a branch for the next release. e.g. if your next milestone will be
22
+
`3.2.0` a `3.2.x` branch is required.
23
+
21
24
Then add following [secrets](https://docs.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets)
22
25
to your project or organization:
23
26
24
-
*`GIT_AUTHOR_NAME` - full name of the author of your releases: can be the name of a bot account.
25
-
*`GIT_AUTHOR_EMAIL` - email address of the author of your releases: can be an email address of a bot account.
26
-
*`SIGNING_SECRET_KEY` - a **password-less** private GPG key in ASCII format, to be used for signing your releases:
27
-
please use a dedicated GPG subkey for this purpose. Unsigned releases are not supported, and won't be supported.
28
-
*`ORGANIZATION_ADMIN_TOKEN` - if you use the file from [`examples/.github/workflows/release-on-milestone-closed.yml`](examples/.github/workflows/release-on-milestone-closed.yml),
29
-
then you have to provide a `ORGANIZATION_ADMIN_TOKEN`, which is a github token with administrative rights over
30
-
your organization (issued by a user that has administrative rights over your project).
31
-
This is required for the `laminas:automatic-releases:switch-default-branch-to-next-minor`
32
-
command, because [changing default branch of a repository currently requires administrative token rights](https://developer.github.com/v3/repos/#update-a-repository).
33
-
You can generate a token from your [personal access tokens page](https://github.com/settings/tokens/new).
27
+
-`GIT_AUTHOR_NAME` - full name of the author of your releases: can be the name of a bot account.
28
+
-`GIT_AUTHOR_EMAIL` - email address of the author of your releases: can be an email address of a bot account.
29
+
-`SIGNING_SECRET_KEY` - a **password-less** private GPG key in ASCII format, to be used for signing your releases:
30
+
please use a dedicated GPG subkey for this purpose. Unsigned releases are not supported, and won't be supported.
31
+
-`ORGANIZATION_ADMIN_TOKEN` - if you use the file from [`examples/.github/workflows/release-on-milestone-closed.yml`](examples/.github/workflows/release-on-milestone-closed.yml),
32
+
then you have to provide a `ORGANIZATION_ADMIN_TOKEN`, which is a github token with administrative rights over
33
+
your organization (issued by a user that has administrative rights over your project).
34
+
This is required for the `laminas:automatic-releases:switch-default-branch-to-next-minor`
35
+
command, because [changing default branch of a repository currently requires administrative token rights](https://developer.github.com/v3/repos/#update-a-repository).
36
+
You can generate a token from your [personal access tokens page](https://github.com/settings/tokens/new).
34
37
35
38
## Usage
36
39
37
40
Assuming your project has Github Actions enabled, each time you [**close**](https://developer.github.com/webhooks/event-payloads/#milestone)
38
41
a [**milestone**](https://docs.github.com/en/github/managing-your-work-on-github/creating-and-editing-milestones-for-issues-and-pull-requests),
39
42
this action will perform all following steps (or stop with an error):
40
43
41
-
1. determine if all issues and pull requests associated with this milestone are closed
42
-
2. determine if the milestone is named with the SemVer `x.y.z` format
43
-
3. create a changelog by looking at the milestone description and associated issues and pull requests
44
-
4. select a branch for the release:
45
-
* if a branch matching `x.y.z` exists, it will be selected
46
-
* otherwise, `master` will be used
47
-
5. create a tag named `x.y.z` on the selected branch, with the generated changelog
48
-
6. publish a release named `x.y.z`, with the generated tag and changelog
49
-
7. create (if applicable), a pull request from the selected branch to the next release branch
50
-
8. create (if necessary) a "next minor" release branch `x.y+1.z`
51
-
9. switch default repository branch to newest release branch
44
+
1. determine if all issues and pull requests associated with this milestone are closed
45
+
2. determine if the milestone is named with the SemVer `x.y.z` format
46
+
3. create a changelog by looking at the milestone description and associated issues and pull requests
47
+
4. select branch `x.y.z` for the release (e.g. `1.1.x` for a `1.1.0` release)
48
+
5. create a tag named `x.y.z` on the selected branch, with the generated changelog
49
+
6. publish a release named `x.y.z`, with the generated tag and changelog
50
+
7. create (if applicable), a pull request from the selected branch to the next release branch
51
+
8. create (if necessary) a "next minor" release branch `x.y+1.z`
52
+
9. switch default repository branch to newest release branch
52
53
53
54
Please read the [`feature/`](./feature) specification for more detailed scenarios on how the tool is supposed
0 commit comments