step-runner

command module
v0.24.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 14, 2026 License: MIT Imports: 7 Imported by: 0

README

Step Runner

Step Runner is an RFC implementation for GitLab Steps, a CI/CD feature to define and use reusable components within a single job execution context. See HOWTO.md for usage.

Project status

Step Runner is currently an experimental feature. It can be tested in GitLab CI/CD jobs but should not be used for production workloads yet.

Contributing

Contributions are welcome, see CONTRIBUTING.md for more details.

Project License

You can view this projects license in LICENSE.

Release

During the experimental phase all changes to main are automatically built as a Docker image and tagged in the container repository as v0. So any workflows referencing the image always use the latest version of the code, and behavior could change at any time. See HOWTO.md for an example of how to test the Step Runner in a job by using the container image.

Binary Downloads

Pre-compiled binaries for multiple platforms are available for download from the releases page.

For GitLab Runner injection (recommended):

  • GitLab Runner will use the Docker images listed in each release for automatic platform selection
  • Requires FF_USE_NATIVE_STEPS and for the executor to support it (currently only docker and docker-autoscaler)

For manual installation:

  • Download the appropriate binary for your platform from the "Binary Downloads" section of each release
  • Windows binaries include the .exe extension
  • All other platforms use standard executable naming

Supported platforms include Windows, Linux, macOS, and FreeBSD across multiple architectures (amd64, arm64, 386, arm, s390x, ppc64le).

Verify authenticity of binaries

Verification ensures the binary hasn't been tampered with and comes from the official GitLab team.

  1. Download and verify the GPG key

    # Download the public key
    curl -o step-runner.pub.gpg https://gitlab.com/gitlab-org/step-runner/-/package_files/257922684/download
    
    # Import and verify key fingerprint
    gpg --import step-runner.pub.gpg
    gpg --fingerprint
    

    Current public key

    Key Attribute Value
    Name GitLab, Inc.
    Email [email protected]
    Fingerprint 0FCD 59B1 6F4A 62D0 3839 27A5 42FF CA71 62A5 35F5
    Expiry 2029-01-05
  2. Download release files

    • Binary for your platform (e.g. step-runner-linux-amd64, step-runner-darwin-arm64)
    • step-runner-release.sha256 (checksums file)
    • step-runner-release.sha256.asc (GPG signature)

    From: https://gitlab.com/gitlab-org/step-runner/-/releases

  3. Verify GPG signature

    gpg --verify step-runner-release.sha256.asc step-runner-release.sha256
    

    ✅ Look for "Good signature" message

  4. Verify binary checksum

    sha256sum -c step-runner-release.sha256
    

    ✅ Should show "OK" for your binary

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
ci
run
dist
integration_test
steps/copy_file command
steps/echo command
steps/exit command
steps/greeting command
steps/sleep command
pkg
api
api/client/basic
package basic implements a low-level client for the step-runner gRPC service with a (more or less) 1:1 mapping to the raw gRPC API.
package basic implements a low-level client for the step-runner gRPC service with a (more or less) 1:1 mapping to the raw gRPC API.
api/client/extended
package extended implements a well-behaved, higher-level client for the step-runner gRPC service.
package extended implements a well-behaved, higher-level client for the step-runner gRPC service.
api/internal/jobs
package jobs implements
package jobs implements
api/internal/streamer/file
package file implements the Streamer interface backed by a file buffer.
package file implements the Streamer interface backed by a file buffer.
api/internal/variables
package variables implements a type and functions to handle CI job variables as described in https://docs.gitlab.com/ee/ci/variables.
package variables implements a type and functions to handle CI job variables as described in https://docs.gitlab.com/ee/ci/variables.
api/service
package service implements the gRPC API declared in ../../../proto/step.proto
package service implements the gRPC API declared in ../../../proto/step.proto
di
internal/syncmap
syncmap implements a simple generic, synchronized map.
syncmap implements a simple generic, synchronized map.
schema
v1

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL