praetorian-inc / noseyparker

Nosey Parker is a command-line program that finds secrets and sensitive information in textual data and Git history.
Apache License 2.0
1.66k stars 79 forks source link

Rework multi-platform Docker builds in GitHub Actions #156

Closed bradlarsen closed 1 month ago

bradlarsen commented 6 months ago

Nosey Parker's currently uses GitHub Actions to build Docker images, including a multi-platform x86_64 and aarch64 image for releases.

There are a few deficiencies with this current setup:

GitHub Actions now has native aarch64 runners. It is probably possible to build the x86_64 and aarch64 Docker images separately within just a few minutes, each on a native runner, and then in a later Actions job, stitch those two Docker images together with the appropriate metadata into a multi-platform Docker image.

bradlarsen commented 6 months ago

Although GitHub has native ARM runners, it appears that they are still in private beta that you have to sign up for: https://github.blog/changelog/2023-10-30-accelerate-your-ci-cd-with-arm-based-hosted-runners-in-github-actions/

bradlarsen commented 3 months ago

We are now using the new Linux ARM64 runners for regular CI jobs and for building release artifacts: https://github.com/praetorian-inc/noseyparker/pull/197. (The runners that we set up for that are named ubuntu-22.04-arm64-8-core and ubuntu-24.04-arm64-8-core.)

The Docker-building workflows still need to be updated to use those runners, build each single platform's image independently, and then merge them together into a multi-platform image.