Azure / karpenter-provider-azure

AKS Karpenter Provider
Apache License 2.0
308 stars 46 forks source link

chore(release): add automated github releases for workflow #413

Open charliedmcb opened 2 weeks ago

charliedmcb commented 2 weeks ago

Fixes #388

Description We currently have to create the github release, and its release notes manually. This additional change makes the workflow automatically create the github release and generate the release notes.

This is modeled off aws:

image

I looked over the recommended substitutes, and found that I think the action-gh-release matches our current desires the best. Its closest to the old action. While the semantic-release action could be useful with some of its additional feature sets, I think for our current usage it goes above and beyond to a point we aren't currently looking for. This would require us to scope it down/not use it in the fully intended way.

This said the action-gh-release repo does have a lot of open issues. While its getting updates at what seem to be an ok cadence, and still maintained it seems like issues/fixes aren't being put through too frequently. That's my main reservation with it. Although, I still think its the correct choice for now.

This change also has some additional elements around automated pre-releases as that is something we have been currently doing, which is missing from the aws release.

How was this change tested? Sadly there isn't a great way to test this until we are actually doing a release and running the workflow.

However, I did check the regex works correctly within bash. Although, not fully confirmed with the actual release variable. *

Does this change impact docs?

Release Note

NONE
coveralls commented 2 weeks ago

Pull Request Test Coverage Report for Build 9587148810

Details


Files with Coverage Reduction New Missed Lines %
pkg/cache/unavailableofferings.go 2 95.45%
<!-- Total: 2 -->
Totals Coverage Status
Change from base Build 9587074007: -0.005%
Covered Lines: 36284
Relevant Lines: 37115

💛 - Coveralls
coveralls commented 2 weeks ago

Pull Request Test Coverage Report for Build 9588058498

Details


Totals Coverage Status
Change from base Build 9587074007: 0.0%
Covered Lines: 36286
Relevant Lines: 37115

💛 - Coveralls
charliedmcb commented 2 weeks ago

Overall LGTM (subject to testing). One concern: While there is value in aligning with AWS provider, marvinpinto/actions is no longer maintained. The author recommends semantic-release or action-gh-release. I wonder how hard it would be to move to one of those instead (maybe together with AWS provider)?

Good callout. I'll take a look over those other options and how they would align here. Can share over with aws too if I find anything.

coveralls commented 2 weeks ago

Pull Request Test Coverage Report for Build 9604398468

Details


Files with Coverage Reduction New Missed Lines %
pkg/cache/unavailableofferings.go 2 95.45%
<!-- Total: 2 -->
Totals Coverage Status
Change from base Build 9603102120: -0.006%
Covered Lines: 36285
Relevant Lines: 37117

💛 - Coveralls
coveralls commented 1 week ago

Pull Request Test Coverage Report for Build 9653958755

Details


Totals Coverage Status
Change from base Build 9621914521: 0.0%
Covered Lines: 36287
Relevant Lines: 37117

💛 - Coveralls
coveralls commented 1 week ago

Pull Request Test Coverage Report for Build 9654039110

Details


Totals Coverage Status
Change from base Build 9621914521: 0.0%
Covered Lines: 36287
Relevant Lines: 37117

💛 - Coveralls
rakechill commented 1 week ago

While the semantic-release action could be useful with some of its additional feature sets, I think for our current usage it goes above and beyond to a point we aren't currently looking for. This would require us to scope it down/not use it in the fully intended way.

@charliedmcb Do you think it would be more complex to understand this tool? From my perspective, additional feature sets that we don't use shouldn't impact us? And could potentially be more useful in the long term. Maybe I'm misunderstanding your reservations, though.

This said the action-gh-release repo does have a lot of open issues. While its getting updates at what seem to be an ok cadence, and still maintained it seems like issues/fixes aren't being put through too frequently.

Does it seem like semantic-release also has some of these maintenance concerns?

charliedmcb commented 1 week ago

@charliedmcb Do you think it would be more complex to understand this tool? From my perspective, additional feature sets that we don't use shouldn't impact us? And could potentially be more useful in the long term. Maybe I'm misunderstanding your reservations, though.

Yea, so I could see using it within the future. However, my main reservations are that while the tool does have extra features, it also seems to be build to handle releases in a way we aren't really looking to do atm.

So, while it contains the tools we want, it also contains things that we'd want to strip away, and feels the added complexity might be excessive.

Examples:

Things I'd like from it:

I so far also wasn't able to find an official github action for it, which means we'd have to make the action usage for it a bit extra complicated too.

charliedmcb commented 1 week ago

Does it seem like semantic-release also has some of these maintenance concerns?

Good question. It also has a lot of open issues (more so even). Its hard to fully judge though. The semantic-release repo has less open fix PRs, and seems to get slightly more regular releases, but hard to fully gauge the differences here.

rakechill commented 1 week ago

Your responses make sense to me 👍 action-gh-release seems like a reasonable first step and if we need more improvements in the future or want to make this more automated after testing it for our upcoming release, then we can return to semantic-release and see if it's better.

approving for now if you want to move forward with this!