-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ci: automate release #1269
ci: automate release #1269
Conversation
✅ Deploy Preview for veda-ui ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
I see task labeling and ticket number validation as optional features. Personally, I don't think we need either of these at this point. Just my opinion, though, feel free to implement if you disagree. Task Labeling:
Ticket Number Validation:
|
Thank you for your efforts to improve our release process @hanbyul-here ! I personally agree that prefixing every commit might be excessive, especially when writing smaller feature commits. I’d lean towards the approach of requiring the PR title to follow the conventional commit format ( Regarding squashing, I think it’s best to clean up the WIP/fix/comment commits locally before opening a PR or marking it as ready for review. I usually handle this with an interactive rebase, allowing me to merge, rewrite, or refine commit messages and descriptions as needed. That way, we can keep the history clean but still complete in the main branch, which can sometimes be useful for tracing back a thought or decision. By the way, should the task type for this PR be "ci"? I see "feat" as something that typically involves user-facing changes, whereas this is only about the CI pipeline. |
with: | ||
fetch-depth: 0 | ||
# @TODO: Add deploy key pair | ||
ssh-key: ${{ secrets.DEPLOY_KEY }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Noting that this was used to bypass the branch protection rule. But I would like to replace it to use GitHub App in the future. (Specifically, when this actions starts triggering the instance build.)
Hey Hanbyul, great stuff! I agree with the sentiment of having the PR title following format instead of individual commits. I dont think we have to do the squash and merge though, it'd be nice to preserve history of each. |
- name: Conventional Commit Validation | ||
uses: ytanikin/[email protected] | ||
with: | ||
task_types: '["feat","fix", "docs", "test", "ci", "refactor", "chore", "revert"]' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❓ : Would general updates like to wording count as a chore
or fix
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it depends on what general updates do - if it is a fix for something I would prefix it withfix:
. This cheatsheet might be helpful: https://gist.github.com/qoomon/5dfcdf8eec66a051ecd85625518cfd13#types
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the great overview and work @hanbyul-here
I also prefer keeping separate commits instead of squash-and-merge, especially if the commit message quality is good, I find it helpful for tracking changes when debugging issues.
# @TODO: byweekly check | ||
# Run action at 16:15 PM on Monday (UTC) | ||
# schedule: | ||
# - cron: '15 16 * * 1' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to note that before uncommenting this we should adjust the cron job as well to actually run biweekly ('15 16 * * 1'
seems like its going to run every Monday at 16:15 PM).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yah, I left it as a @TODO
but it might have not been clear, (hopefully) made a more clear comment.
I will merge this so we can see if we can use this action for the next week's release. |
Close #1236
Description of Changes
Add packages, and configuration to make automated release work
Add an action to release a package every Monday
Add an action to check PR title to follow conventional commit pattern
Notes & Questions About Changes
If you would like to peek at how our release will look like with automation, I experimented it in this repo. Heads-up that there are many empty releases because I was experimenting with scheduling (cron) : https://github.com/hanbyul-here/release-test/releases/
Heads-up that this doesn't do scheduled releases yet. It will be not a big lift to add it, but I wanted us to trigger the action through GitHub Action page first and then kick the scheduled releases out. Currentlh the only way to trigger this action is through UI from action tab.
Conventional commit format
For conventional commits, we have a couple of options for adoption:
I think either approach can work as long as we maintain consistency. Personally, I find option 2 a bit challenging since features or fixes often involve multiple commits, making conventional commit prefixes redundant information.
Currently, this PR only enforces that the PR title follows the conventional commit format. However, this requires some changes to the repository setup. Specifically:
That said, I’m slightly hesitant about squash-and-merge because it makes it harder to trace individual commits, even though we can still use reflog to recover them if necessary.
Using conventional commit as a productivity tool
The action that I am using actually offers a lot of functionality, such as ticket number validation and labeling. I adopted the most minimum possible settings, but maybe we can take more advantage of it? @aboydnw - This is the package I am using and there are detailed writings about what it can do on its read me page: https://github.com/ytanikin/PRConventionalCommits would you find anything useful ?
Validation / Testing
I'd like to go over this PR together. Some items to check together