Skip to content

Releases: grafana/xk6

v0.15.0

24 Mar 12:38
64d1f2e
Compare
Choose a tag to compare

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 the v1 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 the v1.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 the v1.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 from CONTRIBUTING.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 in CONTRIBUTING.md (see docs/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 (see docs/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

19 Feb 13:21
beb63d4
Compare
Choose a tag to compare
v0.14.4-4c1 Pre-release
Pre-release

What's Changed

Full Changelog: v0.14.3...v0.14.4-4c1

v0.14.3

17 Feb 14:33
fe9c372
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.14.2...v0.14.3

v0.14.2

14 Feb 13:41
906c46a
Compare
Choose a tag to compare

Changelog

fixes

  • fix-missing-k6repo-argument #138

v0.14.1

07 Feb 11:02
9bdda1f
Compare
Choose a tag to compare

v0.14.0

05 Feb 13:28
5a2d1c2
Compare
Choose a tag to compare

Changelog

Enhacements

Fixes

  • build latest version of k6 instead of master

Chores

Full Changelog: v0.13.4...v0.14.0

v0.13.4

07 Jan 16:06
f99aeaa
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.13.3...v0.13.4

v0.13.3

20 Nov 16:02
24a3640
Compare
Choose a tag to compare

What's Changed

  • create binary release artifacts using goreleaser by @szkiba in #120

New Contributors

Full Changelog: v0.13.2...v0.13.3

v0.13.2

19 Nov 20:48
b5c1fbb
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.13.1...v0.13.2

v0.13.1

19 Nov 14:06
998c57a
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.13.0...v0.13.1