-
Notifications
You must be signed in to change notification settings - Fork 1.3k
chore(ci)!: update CLI build pipeline #14360
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
We are using some non-standard way to authenticate to ghcr. This change updates our release workflow to use docker/login-action and to authenticate with the standard github action token.
fd8818e to
d8e1623
Compare
The CLI build infrastructure is spread across a few intertwined scripts: `bin/docker-pull-binaries`` prepares binaries from release by loading, running, and extracting the contents of the cli-bin container image. `cli/Dockerfile` is responsible for building all of the binaries. Then, the release and integration workflows build the cli via the `bin/docker-build-cli-bin` script, etc... This change moves all of the packaging concerns into `cli/Dockerfile`, removing the `bin/docker-pull-binaries` and `bin/docker-build-cli-bin` scripts. We introduce two small helper workflow utilities: * `workflows/cli-build.yml`` is a callable workflow that uses modern Github actions infrastructure (e.g., docker/build-push-action) * `actions/cli-setup` downloads and 'installs' the linux-amd64 CLI from the artifact produced by the cli-build workflow. BREAKING CHANGE: We no longer publish a cli-bin image with releases. The typical release artifacts, however, remain unchanged.
adleong
approved these changes
Aug 13, 2025
Member
|
i believe this may have introduced a regression. when driving an edge release this week, i pushed an https://github.com/linkerd/linkerd2/actions/runs/17138575187/job/48621791295 the job seemed to get stuck here, making no progress until the job eventually seemed to time out. |
cratelyn
added a commit
that referenced
this pull request
Aug 21, 2025
This reverts commit e514bc1. Signed-off-by: katelyn martin <[email protected]>
Member
|
cratelyn
added a commit
that referenced
this pull request
Nov 7, 2025
this helper script wrapping docker is used by various scripts in the development workflow. in #14360, we removed the `cli-bin` image from our published artifacts. Signed-off-by: katelyn martin <[email protected]>
cratelyn
added a commit
that referenced
this pull request
Nov 7, 2025
this commit removes mention of the cli from our `bin/docker-build` script. in #14360, we removed the cli image from our published artifacts. moreover, invoking `bin/linkerd` will call `bin/build-cli-bin`. so, this commit removes both calls, to the now deleted `bin/docker-build-cli-bin` script, as well as the `bin/build-cli-bin` script. this lets the `bin/docker-build` script focus solely on docker images. Signed-off-by: katelyn martin <[email protected]>
cratelyn
added a commit
that referenced
this pull request
Nov 7, 2025
this image is used within CI, and broadly as a "layer" to place the cli binaries in a final image. the cli image itself however, is not currently intended for use directly via `docker build`, and will consequently yield an error response if built directly. this commit adds a comment providing some information about this. see #14360 for more. Signed-off-by: katelyn martin <[email protected]>
cratelyn
added a commit
that referenced
this pull request
Nov 7, 2025
this branch makes changes to scripts in the `bin/` directory, to restore the end-to-end local development workflow described in `BUILD.md` here: https://github.com/linkerd/linkerd2/blob/main/BUILD.md#comprehensive now that we no longer include a `bin-cli` in our published artifacts, we can remove that image from the list of images that the `_docker.sh` helper script is aware of. this means we now refrain from (a) building the image when `bin/docker-build` is run, and (b) loading the image when `bin/image-load` is run. some related comments are updated in this branch, while we are here. --- * refactor: remove `cli-bin` from `_docker.sh` images this helper script wrapping docker is used by various scripts in the development workflow. in #14360, we removed the `cli-bin` image from our published artifacts. Signed-off-by: katelyn martin <[email protected]> * nit(bin): update `build-cli-bin` comment this commit removes mention of docker from this comment. there is no longer an equivalent `docker-build-cli-bin` script, so this is the way that we build the cli binary. Signed-off-by: katelyn martin <[email protected]> * fix(bin): remove cli from `bin/docker-build` this commit removes mention of the cli from our `bin/docker-build` script. in #14360, we removed the cli image from our published artifacts. moreover, invoking `bin/linkerd` will call `bin/build-cli-bin`. so, this commit removes both calls, to the now deleted `bin/docker-build-cli-bin` script, as well as the `bin/build-cli-bin` script. this lets the `bin/docker-build` script focus solely on docker images. Signed-off-by: katelyn martin <[email protected]> * docs(cli): a comment about cli image `ENTRYPOINT` this image is used within CI, and broadly as a "layer" to place the cli binaries in a final image. the cli image itself however, is not currently intended for use directly via `docker build`, and will consequently yield an error response if built directly. this commit adds a comment providing some information about this. see #14360 for more. Signed-off-by: katelyn martin <[email protected]> --------- Signed-off-by: katelyn martin <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The CLI build infrastructure is spread across a few intertwined scripts:
bin/docker-pull-binariesprepares binaries from release by loading, running,and extracting the contents of the cli-bin container image.
cli/Dockerfileisresponsible for building all of the binaries. Then, the release and integration
workflows build the cli via the
bin/docker-build-cli-binscript, etc...This change moves all of the packaging concerns into
cli/Dockerfile, removingthe
bin/docker-pull-binariesandbin/docker-build-cli-binscripts. Weintroduce two small helper workflow utilities:
workflows/cli-build.ymlis a callable workflow that uses modern Github actionsinfrastructure (e.g., docker/build-push-action)
actions/cli-setupdownloads and 'installs' the linux-amd64 CLI from theartifact produced by the cli-build workflow.
BREAKING CHANGE: We no longer publish a cli-bin image with releases. The typical
release artifacts, however, remain unchanged.