Djaytan / mc-jobs-reborn-patch-place-break

A place-break patch extension of JobsReborn plugin for Bukkit servers (Minecraft).
MIT License
6 stars 2 forks source link

ci(release): get rid of broken semantic-release PR dependency #577

Closed Djaytan closed 9 months ago

Djaytan commented 9 months ago

The semantic-release plugin "semantic-release-github-pullrequest" allowing the GitHub PR creation is broken (https://github.com/asbiin/semantic-release-github-pullrequest). The following PR need to be merged, but it seems like the repository is no longer actively maintained: https://github.com/asbiin/semantic-release-github-pullrequest/pull/148.

The motivation for maintaining a CHANGELOG file is well-explained here: https://github.com/asbiin/semantic-release-github-pullrequest/issues/40#issuecomment-1830972581.

So here comes this change aiming to replace this broken dependency. For that, we rely on the GitHub CLI for creating PRs (https://cli.github.com/manual/gh_pr_create).

Since it can be not trivial to clearly understand the CHANGELOG file generation, committing and pushing process, here is a summary:

  1. The changelog file is generated/updated by the @semantic-release/changelog plugin when executing the semantic-release CLI. No Git action is performed by the plugin, meaning additional steps are required, hence the followings.
  2. Create a branch from the current release one (e.g. "main") and switch on it since it will be used at PR creation time. NOTE: the github.ref_name context value point to the branch against which the workflow has been dispatched. While the "main" branch is considered as a release one, that's not the only one (cf. branches option from the release.config.js file). This means we must be able to ensure that the behavior will work in a generic way (e.g. creating a PR against the "alpha" release branch).
  3. Commit the changes made specifically to the CHANGELOG file
  4. Push the changelog branch to the remote
  5. Create a GitHub PR

The Git configuration has been adapted in order to state explicitly that the committer is a GitHub bot (i.e. the "[bot]" suffix in the name follow convention + is interpreted by the GitHub UI in the end). The current bot email has been selected so that a beautiful GitHub logo is displayed when checking the author associated to a given commit (e.g. https://github.com/Djaytan/mc-jobs-reborn-patch-place-break/commit/30dd7ae22cf3ceb60d74806333cc6ce78c05f396) and when checking the contributors (https://github.com/Djaytan/mc-jobs-reborn-patch-place-break/graphs/contributors). You can find explanation here: https://github.com/orgs/community/discussions/26560#discussioncomment-3252339.

sonarcloud[bot] commented 9 months ago

Quality Gate Passed Quality Gate passed

Issues
0 New issues

Measures
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarCloud

github-actions[bot] commented 9 months ago

:tada: This PR is included in version 3.0.3 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

github-actions[bot] commented 9 months ago

:tada: This PR is included in version 3.0.3 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

github-actions[bot] commented 9 months ago

:tada: This PR is included in version 3.0.3 :tada:

The release is available on GitHub release

Your semantic-release bot :package::rocket: