Skip to content
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

Remove the docker installation from the release process #577

Closed
wagoodman opened this issue Oct 20, 2021 · 4 comments
Closed

Remove the docker installation from the release process #577

wagoodman opened this issue Oct 20, 2021 · 4 comments
Assignees
Labels
enhancement New feature or request release relating to the release process of syft

Comments

@wagoodman
Copy link
Contributor

wagoodman commented Oct 20, 2021

What would you like to be added:
Run the majority of the release steps on a linux runner. Split darwin-related post-build tasks (homebrew + mac signing) to a separate runner during release and attach the signed artifacts to the release created on the linux runner. The linux runner would still be responsible for creating the darwin binary and uploading as a pipeline artifact so that the mac runner can download it and commence signing / homebrew steps.

Why is this needed:
We spend a lot of time installing docker in the release pipeline, which is only needed for building/publishing docker images with goreleaser and our changelog generator (which may be replaced soon).

Additional context:
Experimenting on a fork would be a good idea. This has some interplay with #576

Related to #519

@wagoodman wagoodman added the enhancement New feature or request label Oct 20, 2021
@wagoodman
Copy link
Contributor Author

There is an alternative path here which is worth taking a closer look at. The notarization path only needs to be run on mac, and there are other tools that can take over the artifact signing step. This is important as it allows for goreleaser to run on linux, simplifies our local development when changing this process if we use self-signed certs locally, and we can push the artifacts to a mac runner for the notarization process out-of-band (after) goreleaser completes.

@wagoodman wagoodman self-assigned this Jan 4, 2022
@wagoodman
Copy link
Contributor Author

wagoodman commented Jan 11, 2022

From refinement:

  1. Possible solution: we could move the release process to a linux box, remove signing from the goreleaser process, post a draft release with unsigned mac assets, spin up a post-release mac runner that would fulfill signing and notarization of mac assets, and replace the mac assets on the release before publishing.
  2. Possible solution: use quill to do signing on a linux box within the goreleaser workflow and move notarization to a separate post-release workflow.

@luhring
Copy link
Contributor

luhring commented Feb 10, 2022

Would it be worth using ko for building container images? I've seen more folks using it for building images w/ static Go binaries, since ko requires a whole lot less from the underlying build infrastructure.

@wagoodman wagoodman added the release relating to the release process of syft label Mar 31, 2022
@spiffcs
Copy link
Contributor

spiffcs commented Oct 20, 2022

We no longer rely on docker being installed and have broken this off into its own block:
#1133

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request release relating to the release process of syft
Projects
None yet
Development

No branches or pull requests

3 participants