Releases: grafana/xk6
v0.15.0
xk6 v0.15.0
is here! 🎉
This release includes:
- Release Docker images using GoReleaser
- Refactor GitHub workflows
- Prepare for contributions
New Features
Use GoReleaser to release docker images #145
The well-known GoReleaser tool is already used for releasing xk6 binary. Docker images are now also released with GoReleaser.
In addition to simplifying the release workflow, the main benefit is that Docker images are now available with major and minor version tags.
For example, let's say 1.2.3
is the latest xk6 Docker image version.
- the latest release of major version
1
is available using thev1
tag:docker run --rm -it -u "$(id -u):$(id -g)" -v "${PWD}:/xk6" grafana/xk6:v1
- the latest release of minor version
1.2
is available using thev1.2
tag:docker run --rm -it -u "$(id -u):$(id -g)" -v "${PWD}:/xk6" grafana/xk6:v1.2
- of course version
1.2.3
is still available using thev1.2.3
tag:docker run --rm -it -u "$(id -u):$(id -g)" -v "${PWD}:/xk6" grafana/xk6:v1.2.3
- the latest release is still available using the
latest
tag:docker run --rm -it -u "$(id -u):$(id -g)" -v "${PWD}:/xk6" grafana/xk6:latest
Important
In CI pipelines it is recommended to use the major version tag (or the minor version tag) instead of the latest tag. Using the latest
tag ignores the benefits of semantic versioning and can easily break the CI pipeline.
Refactor GitHub workflows #152
New validate
and release
workflows, whose functionality has been extracted into the tooling-validate
and tooling-release
reusable workflows.
The new workflows must be configured via mandatory repository variables:
GO_VERSION
The go version to use for the build.GO_VERSIONS
The go versions to use for running the tests. JSON string array (e.g.["1.24.x", "1.23.x"]
)PLATFORMS
Platforms to be used to run the tests. JSON string array (e.g.["ubuntu-latest","macos-latest"]
)K6_VERSIONS
The k6 versions to be used for integration tests. JSON string array (e.g.["v0.57.0","v0.56.0"]
)GOLANGCI_LINT_VERSION
The golangci-lint version to use for static analysis.GORELEASER_VERSION
The version of GoReleaser to use for builds and releases.
The new workflows use the following repository secrets:
DOCKER_USER
Username to use for pushing Docker images to Docker Hub.DOCKER_PASS
Token to use for pushing Docker images to Docker Hub.CODECOV_TOKEN
Token to be used to upload test coverage data to Codecov.
Prepare for contributions #148
Making it easy to contribute is essential for an open-source project like xk6. The easier it is to contribute, the more contributors will contribute.
- Added
docs/CONTRIBUTING.md
. Making it easy to contribute starts with documenting the contribution process. Makefile
is now generated fromCONTRIBUTING.md
.make
is one of the most widely used task automation tools. Instead of manually editing make rules, it is better to generate them from the task descriptions documented inCONTRIBUTING.md
(seedocs/CONTRIBUTING.md
for more details).- Added
docs/CODE_OF_CONDUCT.md
. Since contributors come from different backgrounds, it is essential to document the expected standards of behavior. - Dev Containers support. Since development requires different tools, a reproducible development environment is important. The tools used for development (with exactly the same version) should be available to contributors. That is why a Dev Containers configuration (
.devcontainer/devcontainer.json
) was added to the repository (seedocs/CONTRIBUTING.md
for more details).
Risks
The following changes are not breaking changes but are risky.
fixuid has been copied to the xk6 repo
The fixuid tool was used by the xk6 Docker image to modify the user id and group id at runtime in order to make using the Docker image more convenient.
It was copied based on the following considerations:
- The fixuid is a security-critical component of the Docker image
- The fixuid has a low release frequency (last release in 2023).
- Using fixuid in the xk6 Docker image is unnecessarily complicated (config file generation)
The source of the fixuid
tool has been copied as an internal fixids
tool to the internal/fixids
folder. A minor refactoring has been done for easier usability. The refactor affected parameter/configuration management, not functionality.
This refactor is worth mentioning because of its risk. That's why this release is made from only the changes to the Docker image release.
v0.14.4-4c1
What's Changed
- update k6foundry v0.4.5 by @pablochacin in #141
Full Changelog: v0.14.3...v0.14.4-4c1
v0.14.3
What's Changed
- update k6foundry v0.4.4 by @pablochacin in #140 Fixes #136 and #139
Full Changelog: v0.14.2...v0.14.3
v0.14.2
v0.14.1
v0.14.0
Changelog
Enhacements
- Use k6foundry for building by @pablochacin in #124
Fixes
- build latest version of k6 instead of master
Chores
- update base image by @pablochacin in #125
Full Changelog: v0.13.4...v0.14.0
v0.13.4
What's Changed
- bump go verion in xk6 image by @pablochacin in #122
Full Changelog: v0.13.3...v0.13.4
v0.13.3
v0.13.2
v0.13.1
What's Changed
- Add ARM support for Docker build by @nikoshet in #114
- update base image by @pablochacin in #115
New Contributors
Full Changelog: v0.13.0...v0.13.1