LukasGrebe / ha-addons

Addons for Home Assistant
GNU General Public License v3.0
43 stars 49 forks source link

Automatic changelog and version creation by triggering a new github release #143

Open cociweb opened 1 month ago

cociweb commented 1 month ago

This PR enables appending the changelog.md with the content (body) of a new GitHub Release. Consequently, building and publishing can be initiated by creating a new release (tagged with v0.0.0/V0.0.0/0.0.0 format) or manually through the dispatcher. Publishing will no longer be triggered by merges or pushes.

ATTENTION! Unfortunatelly, I'm not able to make a final test on my main branch, because the coderabbit 'hops' all the commit into this PR.

Summary by CodeRabbit

coderabbitai[bot] commented 1 month ago

Walkthrough

The pull request introduces several modifications to GitHub Actions workflow files. The builder.yaml workflow now only allows manual execution, while lint.yaml and tester.yaml have adjustments to their triggering conditions. Additionally, a new workflow, release-notes.yaml, has been added to automate changelog creation and release management. The CHANGELOG.md has also been updated to improve formatting and maintain a history of version changes.

Changes

File Change Summary
.github/workflows/builder.yaml Removed push event trigger for main branch and version tags; kept workflow_dispatch for manual runs.
.github/workflows/lint.yaml Adjusted pull_request trigger to remove branch specification; push now only specifies main.
.github/workflows/release-notes.yaml Introduced new workflow to automate changelog creation and release management on tag pushes.
.github/workflows/tester.yaml Changed triggering condition to restrict workflow to only the main branch.
ebusd/CHANGELOG.md Updated changelog format and retained entries for versions 23.2.6 to 23.2.0 with respective updates.

Possibly related PRs

Suggested reviewers

Poem

In the meadow where we play,
Workflows dance and change today.
With triggers set and notes to write,
Changelogs shine, oh what a sight!
Hops of joy, we celebrate,
In code we trust, we innovate! 🐇✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
🪧 Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit , please review it.` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.
cociweb commented 1 month ago

@tjorim, could you please apply this patch to your updated fork and then create a new github release (with tag pattern of v0.0.0/V0.0.0/0.0.0) ? To ensure the PR does not introduce further issues according to the patch, consider making a release prior to applying the patch as well. Unfortunately, Lukas unable to test it, as it impacts the main branch. I've tested it previously on my main branch, but a confirmation would be beneficial.

As part of the pass criteria, the CHANGELOG.md must be updated to include the body text of the new release in markdown format, and the config.yaml must reflect the tag name in its version record.

cociweb commented 4 weeks ago

@tjorim @LukasGrebe

the ebusd 24.1 is in the tube. Can we merge this before we release that?

tjorim commented 4 weeks ago

I should have some time tonight or tomorrow to test out this PR so we are ready to ship once the alpine package bump is merged.

cociweb commented 2 weeks ago

@tjorim Do You have any feedback?