> semantic-release without the plugins, the config, or nodemodules. One static Go binary, zero dependencies.
> Source: https://orochibraru.com/releaser/docs/readme · Site index: https://orochibraru.com/llms.txt

# releaser

semantic-release without the plugins, the config, or `node_modules`. One static
Go binary, zero dependencies.

On every push to `main`, it reads your
[Conventional Commits](https://www.conventionalcommits.org), picks the next
version, writes `CHANGELOG.md`, bumps `package.json`, commits, tags, and creates
the GitHub release. Two optional modes, usable together: **artifact** (attach
files to the release) and **docker** (build and push the image). Trunk-based?
Ship a **canary** per push and cut stable releases through a **release PR**.

```yaml
on:
  push:
    branches: [main]

jobs:
  release:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      packages: write # docker mode only
    steps:
      - uses: actions/checkout@v7
      - uses: orochibraru/releaser@v1
        with: # all optional
          prepare: ./build.sh ${version} # builds dist/app.zip
          artifacts: dist/app.zip=app-${version}.zip
          docker: true # builds ./Dockerfile
```

## Documentation

- [Getting started](https://orochibraru.com/releaser/docs/getting-started)
- [Inputs and flags](https://orochibraru.com/releaser/docs/options)
- [Migrating from semantic-release](https://orochibraru.com/releaser/docs/migrating)
- [Release flows](https://orochibraru.com/releaser/docs/flows)
- [Versioning](https://orochibraru.com/releaser/docs/versioning)
- [Artifact mode](https://orochibraru.com/releaser/docs/artifacts)
- [Docker mode](https://orochibraru.com/releaser/docs/docker)
- [Canaries and release PR](https://orochibraru.com/releaser/docs/trunk)
- [Architecture](https://orochibraru.com/releaser/docs/architecture)

Runnable [examples](https://github.com/orochibraru/releaser/blob/main/examples): Python, Go, TypeScript, JavaScript, Rust, Java,
Kotlin, C, Bun, and Docker mode.

## Development

```bash
mise install    # go and prek, pinned in mise.toml
prek install    # gofmt, go mod tidy, go vet, go test, prettier, markdownlint
go test ./...   # unit + integration, incl. the artifact and Docker examples (Docker needs Docker)
                # the other examples run in the Examples workflow
```
