Skip to content

Conversation

@esafak
Copy link

@esafak esafak commented Dec 20, 2025

Why

Users should not have to wait for someone to update this action, which unfortunately happens very rarely, to benefit from updates to the main utility. We refactor the GitHub Action to build the Docker image at runtime using a user-specified version of kubescape-cli.

What this does

  • Introduce a build argument KUBESCAPE_VERSION in the Dockerfile to dynamically set the base image version.
  • Convert the action to a composite action in action.yml.
  • Add a mandatory version input to action.yml to allow users to specify any kubescape-cli version or 'latest'.
  • Implement version resolution logic in action.yml to fetch the latest tag if version is set to 'latest', using the github.token for authentication.
  • Update the build step in action.yml to pass the resolved version as the --build-arg KUBESCAPE_VERSION to docker build.
  • Update the run step in action.yml to use the resolved version tag for the docker run command.
  • Rewrite update.sh to fetch the latest release tag and update the KUBESCAPE_VERSION argument in the Dockerfile using sed.

Testing

I successfully ran the refactored action on my fork: https://github.com/esafak/kubescape-gha/actions/runs/20386459620/job/58588241646

Notes

The kubescape-fix-pr-reviews workflow, which I did not touch, fails with the typo "Scannign scope is not specified. Scanning all frameworks".

Refactor the GitHub Action to build the Docker image at runtime using a user-specified version of `kubescape-cli`.

* Introduce a build argument `KUBESCAPE_VERSION` in the `Dockerfile` to dynamically set the base image version.
* Convert the action to a composite action in `action.yml`.
* Add a mandatory `version` input to `action.yml` to allow users to specify any `kubescape-cli` version or 'latest'.
* Implement version resolution logic in `action.yml` to fetch the latest tag if `version` is set to 'latest', using the `github.token` for authentication.
* Update the build step in `action.yml` to pass the resolved version as the `--build-arg KUBESCAPE_VERSION` to `docker build`.
* Update the run step in `action.yml` to use the resolved version tag for the `docker run` command.
* Rewrite `update.sh` to fetch the latest release tag and update the `KUBESCAPE_VERSION` argument in the `Dockerfile` using `sed`.

Signed-off-by: Emre Şafak <3928300+esafak@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant