Docker
semrel is available as an official Docker image at ghcr.io/SemRels/semrel.
Image variants
Section titled “Image variants”| Tag | Base | Notes |
|---|---|---|
ghcr.io/SemRels/semrel:latest | distroless | Minimal, no shell. Requires git in host or mount. |
ghcr.io/SemRels/semrel:1.4.0 | distroless | Version-pinned distroless |
ghcr.io/SemRels/semrel:latest-alpine | Alpine 3 | Includes git, ca-certificates, shell |
ghcr.io/SemRels/semrel:1.4.0-alpine | Alpine 3 | Version-pinned Alpine |
Quickstart
Section titled “Quickstart”# Dry run in current directorydocker run --rm \ -v "$(pwd):/workspace" \ -w /workspace \ -e GITHUB_TOKEN="$GITHUB_TOKEN" \ ghcr.io/SemRels/semrel:latest-alpine release --dry-runGitHub Actions
Section titled “GitHub Actions”jobs: release: runs-on: ubuntu-latest container: image: ghcr.io/SemRels/semrel:latest-alpine steps: - uses: actions/checkout@v4 with: fetch-depth: 0
- name: Run semrel run: semrel release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}Or use it as a Docker action:
- name: Run semrel uses: docker://ghcr.io/SemRels/semrel:latest-alpine with: args: release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}GitLab CI
Section titled “GitLab CI”semrel: image: ghcr.io/SemRels/semrel:latest-alpine stage: release script: - semrel release --gitlab-dotenv semrel.env artifacts: reports: dotenv: semrel.envEnvironment variables
Section titled “Environment variables”The container inherits all environment variables from the host or CI job. Pass secrets via -e or CI secret management:
| Variable | Required | Description |
|---|---|---|
GITHUB_TOKEN | For GitHub provider | GitHub API token |
GITLAB_TOKEN | For GitLab provider | GitLab API token |
SEMREL_DRY_RUN | No | Set to true to simulate |
Workspace mounting
Section titled “Workspace mounting”semrel operates on the current working directory. Mount your repository to /workspace:
docker run --rm \ -v "$(pwd):/workspace" \ -w /workspace \ -e GITHUB_TOKEN="$GITHUB_TOKEN" \ ghcr.io/SemRels/semrel:latest-alpine releaseVersion pinning
Section titled “Version pinning”Pin to a specific version for reproducible builds:
ghcr.io/SemRels/semrel:1.0.0-alpine