-
Notifications
You must be signed in to change notification settings - Fork 154
chore(ci): refactor release workflow #2028
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
Conversation
just wanted to say... great work @am29d !! Abiding to our implicit tenet of working in public, we briefly discussed about the seal+checkout process, so here's the reasoning:
Whichever solution you find that prevents accidental code being added to the release after a version bump I'll be happy with it. Ping @sthulb for a security review once this is settled. We're here to help! |
+1 on this
We have opted to go in this direction because we want to delegate the version increase to Lerna rather than having to manually compute it and input it (which is also error prone, and irreversible once published). Already in its current form, Lerna scans the messages of all the commits made since the previous release and based on conventional commits it decides the next version. At the very beginning of the project (mid 2021) this was done manually but given the modular nature of the project we found that this put a significant cognitive load on the maintainers. To obviate this we adopted the Given that we want to remove the With this in mind, we decided to split the workflow in two:
Our original plan was to have a maintainer take the commit hash of the versioning commit and use it as an input of the release workflow. After your comment however I wonder if this might not be enough to establish strong provenance. I don't want to complicate the workflows further, but at least for now I'm inclined to keep the versioning & release steps separate unless there's no other way that satisfies governance & security. To this end, I see two options:
The second option is probably the simpler (in terms of implementation) and guarantees a stronger link between versioning & release. The only problem I see with it is that if for any reason the release workflow fails, we'd have to revert the versioning commit & run it again, but I think it's an acceptable tradeoffs in the name of security (as long as we have a runbook ). What do you all think? |
looking 👀 |
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.
one question about the usage of a custom token on action/checkout
.
Ask: could you please document the overall process of make-release.yml
?
|
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.
great work @am29d !!!
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.
Amazing work, looking forward to test this!
Thanks for raising the bar on this!
Description of your changes
In this PR we refactor the release workflow to reduce the permission scope and add additional review step for the layer arn docs changes. The changes include
create-tag
because we don't do it with lerna any morecreate-pr
step after layerprod
deployment to review doc changesgithub.sha
for commit hash checkoutfrom-package
in detached head with a sha, because we tag in the nextcontents: read
Related issues, RFCs
Issue number: #1799
Checklist
Breaking change checklist
Is it a breaking change?: NO
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.