|
11 | 11 |
|
12 | 12 | jobs: |
13 | 13 | create-release-pr: |
14 | | - name: Create a Pull Request for the release |
| 14 | + name: Create a pull request for the release |
15 | 15 | runs-on: ubuntu-latest |
16 | 16 |
|
17 | 17 | steps: |
|
21 | 21 | - name: Checkout repository |
22 | 22 | uses: actions/checkout@v4 |
23 | 23 | with: |
24 | | - # This token allows committing modifications on workflow files (read/write on Contents and Workflows permissions) |
| 24 | + # This token allows committing modifications on workflow files (read/write on Contents, Pull Requests, and Workflows permissions) |
25 | 25 | token: ${{ secrets.RELEASE_TOKEN }} |
26 | 26 |
|
27 | 27 | - name: Write a new release to CHANGELOG.md |
@@ -49,10 +49,33 @@ jobs: |
49 | 49 | # The tail command is used to remove an unnecessary title from the changelog. |
50 | 50 | run: chan show $RELEASE_VERSION | tail -n +2 | gh release create $RELEASE_VERSION --title "Akkurate $RELEASE_VERSION" --draft --notes-file - |
51 | 51 |
|
52 | | - - name: Create a Pull Request |
| 52 | + - name: Create a pull request |
53 | 53 | env: |
54 | 54 | GH_TOKEN: ${{ secrets.RELEASE_TOKEN }} |
55 | | - run: gh pr create --assignee nesk --base main --head release/$RELEASE_VERSION --title "Release $RELEASE_VERSION" --body "New release" -d |
| 55 | + run: | |
| 56 | + gh pr create --assignee nesk --base main --head release/$RELEASE_VERSION --title "Release $RELEASE_VERSION" --body "This a pull request for releasing version $RELEASE_VERSION of Akkurate. |
| 57 | +
|
| 58 | + ### Before merging this pull-request |
| 59 | + #### Maven Central Repository |
| 60 | + Head to the [Nexus Repository Manager](https://s01.oss.sonatype.org/#stagingRepositories) and verify if the newly created staging repository is valid, meaning: |
| 61 | + |
| 62 | + - all the artifacts are present (root directories starting with `akkurate-` in the sources); |
| 63 | + - each artifact is built for nearly [all multiplatform targets](https://kotlinlang.org/docs/multiplatform-dsl-reference.html#targets); |
| 64 | + - and all the files are signed with multiple `.asc` variations. |
| 65 | + |
| 66 | + If everything is compliant to this checklist, close the repository, then release it. |
| 67 | + |
| 68 | + #### GitHub release |
| 69 | + Open the draft release created on GitHub. You can edit the description of the release to add any additional content you want, _but leave the changelog as-is._ Once you're satisfied, publish the release. |
| 70 | + |
| 71 | + #### Finalize everything |
| 72 | + Once everything above is done, you can merge this pull request. |
| 73 | + |
| 74 | + ### Aborting the release |
| 75 | + In case you want to cancel everything and restart from a clean slate: |
| 76 | + |
| 77 | + - Delete the tag and the branch: `git push --delete origin $RELEASE_VERSION release/$RELEASE_VERSION` |
| 78 | + - Delete the release: `gh release delete $RELEASE_VERSION`" |
56 | 79 |
|
57 | 80 | publish: |
58 | 81 | name: Publish to Maven Central Repository |
|
0 commit comments