-
Notifications
You must be signed in to change notification settings - Fork 275
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
Could a GitHub release replace a build manifest, should we try it? #1506
Comments
After doing a little digging, the release supports a direct publish mode, and a draft that can be published later. The draft release can take the intended tag name and when the release it published it would automatically be created. By using a template, this can be pre-populated. Releases can be editing afterwards, but the tag pointer possible, it would have to be switched. While releases could be driven by this tool, the pre-release repository is not accessible publicly so additional access would be needed for each repo that supports this. To use the release feature as part of github, I would advise a system that:
If there are details that need to be managed in a format in-line with the existing input manifest model, a shared github action could create manifest file after a release draft is created. Potential areas of concern
Github action Release object reference for github Creating templates for release notes: Api reference release notes: |
The GitHub release seems like a better option that makes the client release a push based model. Removing the manifest file completely. The GitHub release needs to be created/drafted for the jenkins release workflow to run. The trigger payload gives the necessary details that can be used by the jenkins lib functions https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#release For example, the release workflow is triggered on tags, the high level end to end workflow would look like: In the long run, this is low/no maintenance compared to manifest files. The jenkins File used for releasing can differ the source of artifacts used for publishing (download from s3 / GH release / any other source) Note: Draft release can also be replaced by |
Can you explain a bit on what |
@peterzhuamazon See https://github.com/marketplace/actions/gh-release This is what is draft release looks like: It won't be publicly visible until you publish a release. |
@gaiksaya I like this solution but does this tie our release process with GitHub repo and tools? I am good with this model but want to make sure that the process can be easily reproduced outside of GitHub as well. |
It does not directly tie it to GH but since our repos, their CIs are on GH it makes sense if part of it is tied. The jenkins libraries that will take care of the actual release will be independent of GH rather GH is a bridge that will trigger, (maybe bring the artifact to) jenkins. |
+1 on the staging area being GitHub. I think this will work at least for Java (Maven) and Ruby (pkg) artifacts. |
Hey, few thoughts:
|
Please note that git LFS is not free, and you can easily DDoS someone else's account. |
We will be going ahead with GitHub release. For artifact staging, if release assets are not sufficient we can look into bringing up the infrastructure to support additional storage. Updated the design doc with the above approach. |
Build manifests as are used in OpenSearch / OpenSearch Dashboards contain a lot of information, is all that information necessary or is a GitHub release and associated artifacts enough?
Acceptance Criteria:
The text was updated successfully, but these errors were encountered: