releaser-pleaser/docs/guides/updating-arbitrary-files.md
Julian Tölle f1aa1a2ef4
refactor: let updaters define the files they want to run on (#233)
This change reverses the responsibility for which files the updaters are
run on. Now each updater can specify the list of files and wether the
files should be created when they do not exist yet. This simplifies the
handling of each update in releaserpleaser.go, as we can just iterate
over all updaters and call it for each file of that updater.

Also update the flags to allow users to easily define which updaters
should run.
2025-08-23 22:14:34 +02:00

1.8 KiB

Updating arbitrary files

In some situations it makes sense to have the current version committed in files in the repository:

  • Documentation examples
  • A source-code file that has the version for user agents and introspection
  • Reference to a container image tag that is built from the repository

releaser-pleaser can automatically update these references in the Release PR.

Markers

The line that needs to be updated must have the marker x-releaser-pleaser-version somewhere after the version that should be updated.

For example:

// version/version.go

package version

const Version = "v1.0.0" // x-releaser-pleaser-version

Extra Files

You need to tell releaser-pleaser which files it should update. This happens through the CI-specific configuration.

GitHub Action

In the GitHub Action you can set the extra-files input with a list of the files. They need to be formatted as a single multi-line string with one file path per line:

jobs:
  releaser-pleaser:
    steps:
      - uses: apricote/releaser-pleaser@v0.4.0
        with:
          extra-files: |
            version.txt
            version/version.go
            docker-compose.yml

GitLab CI/CD Component

In the GitLab CI/CD Component you can set the extra-files input with a list of files. They need to be formatted as a single multi-line string with one file path per line:

include:
  - component: $CI_SERVER_FQDN/apricote/releaser-pleaser/run@v0.4.0
    inputs:
      extra-files: |
        version.txt
        version/version.go
        docker-compose.yml