CATcher-org / CATcher

CATcher is a software application used for peer-testing of software projects.
https://catcher-org.github.io/CATcher/
MIT License
71 stars 66 forks source link

Release Automation #639

Open ptvrajsk opened 3 years ago

ptvrajsk commented 3 years ago

@CATcher-org/2021-devs @anubh-v

Regarding Release Automation, we were thinking to further automate the process.

Currently,

With some added automation we could combine the first 3 stages into a single workflow / action and simply verify the release files before manually finalizing the release.

Any suggestions on how we could go about doing this or different ideas on which parts can be automated?

ptvrajsk commented 3 years ago

I initially thought we could go along the lines of GH-Actions to do the automated changelogs and version bump but the flexibility of it may be limited.

Another solution would be to customize a boilerplate GH Bot (https://github.com/probot/probot) and tune it for our application (Referring to Commits and Drafting a PR). Since it's built in Typescript and can also use hooks it is pretty flexible to cover most of our needs. The pros of a bot is that it can be expanded to cover a bunch of more Project Management tasks (labelling PRs, requesting Reviews, making sure Suggested PR Commit message adhere to a particular standard, etc...)

But as mentioned by @anubh-v our solution shouldn't really take a lot more time to build and maintain as doing these things manually doesn't take too much time either.

What do you guys think?

seanlowjk commented 3 years ago

I feel that this feature is a good-to-have feature.

Personally, I think this will take at most 2 or 3 days of work after some research has been done.

Maybe we can consider doing it after this semester during the break? :O

ptvrajsk commented 3 years ago

Another Idea is to simply add https://probot.github.io/apps/release-drafter/. To our CAtcher repo and it will automatically create a changelog based on the PRs we've merged and even categorize them based on labels we set to our PRs. Does what we want and requires minimal setup time.

seanlowjk commented 3 years ago

Just to bump, I think we can revisit this issue since it's already after the semester, and compare the pros and cons of using release-drafter and making a custom GH bot using probot and see which step we can use in order to do release automation!

AudreyFelicio commented 2 years ago

@seanlowjk @ptvrajsk Hello, can I try to work on this issue?

anubh-v commented 2 years ago

@AudreyFelicio sure, you can work on this

Let's discuss further if the solutions take too much time to implement.

Side note: In addition to the automated changelogs, it will be nice if we can automatically tag every merged PR to the milestone of the next version. Example: every PR could be tagged with milestone "next release", and we can subsequently rename the milestone to "vX.Y.Z" when we release a new version of CATcher.

Currently, we have to manually tag each PR to a milestone.