diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9d137dc..f2a8386 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Set up Go uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5 @@ -27,7 +27,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Set up Go uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5 @@ -38,7 +38,7 @@ jobs: run: go test -v -race -coverpkg=./... -coverprofile=coverage.txt ./... - name: Upload results to Codecov - uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5 + uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5 with: token: ${{ secrets.CODECOV_TOKEN }} @@ -46,7 +46,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Set up Go uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5 diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 912615e..f1fb5d1 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -13,7 +13,7 @@ jobs: id-token: write # To update the deployment status steps: - - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: lfs: "true" diff --git a/.github/workflows/mirror.yaml b/.github/workflows/mirror.yaml index d7feadb..e287aed 100644 --- a/.github/workflows/mirror.yaml +++ b/.github/workflows/mirror.yaml @@ -11,7 +11,7 @@ jobs: REMOTE: mirror steps: - name: Checkout - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: # Need all to fetch all tags so we can push them fetch-depth: 0 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index bcc947d..6da204d 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Set up Go uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5 diff --git a/.github/workflows/releaser-pleaser.yaml b/.github/workflows/releaser-pleaser.yaml index 6e79306..aa5097f 100644 --- a/.github/workflows/releaser-pleaser.yaml +++ b/.github/workflows/releaser-pleaser.yaml @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: ref: main diff --git a/action.yml b/action.yml index 651ca09..225e3cc 100644 --- a/action.yml +++ b/action.yml @@ -14,15 +14,11 @@ inputs: required: false default: ${{ github.token }} extra-files: - description: 'List of files that are scanned for version references by the generic updater.' - required: false - default: "" - updaters: - description: "List of updaters that are run. Default updaters can be removed by specifying them as -name. Multiple updaters should be concatenated with a comma. Default Updaters: changelog,generic" + description: 'List of files that are scanned for version references.' required: false default: "" # Remember to update docs/reference/github-action.md -outputs: { } +outputs: {} runs: using: 'docker' image: docker://ghcr.io/apricote/releaser-pleaser:v0.6.1 # x-releaser-pleaser-version @@ -31,7 +27,6 @@ runs: - --forge=github - --branch=${{ inputs.branch }} - --extra-files="${{ inputs.extra-files }}" - - --updaters="${{ inputs.updaters }}" env: GITHUB_TOKEN: "${{ inputs.token }}" GITHUB_USER: "oauth2" diff --git a/cmd/rp/cmd/run.go b/cmd/rp/cmd/run.go index a70e915..ec11e24 100644 --- a/cmd/rp/cmd/run.go +++ b/cmd/rp/cmd/run.go @@ -2,7 +2,6 @@ package cmd import ( "fmt" - "slices" "strings" "github.com/spf13/cobra" @@ -27,17 +26,16 @@ var ( flagOwner string flagRepo string flagExtraFiles string - flagUpdaters []string ) func init() { rootCmd.AddCommand(runCmd) + runCmd.PersistentFlags().StringVar(&flagForge, "forge", "", "") runCmd.PersistentFlags().StringVar(&flagBranch, "branch", "main", "") runCmd.PersistentFlags().StringVar(&flagOwner, "owner", "", "") runCmd.PersistentFlags().StringVar(&flagRepo, "repo", "", "") runCmd.PersistentFlags().StringVar(&flagExtraFiles, "extra-files", "", "") - runCmd.PersistentFlags().StringSliceVar(&flagUpdaters, "updaters", []string{}, "") } func run(cmd *cobra.Command, _ []string) error { @@ -83,21 +81,6 @@ func run(cmd *cobra.Command, _ []string) error { extraFiles := parseExtraFiles(flagExtraFiles) - updaterNames := parseUpdaters(flagUpdaters) - updaters := []updater.Updater{} - for _, name := range updaterNames { - switch name { - case "generic": - updaters = append(updaters, updater.Generic(extraFiles)) - case "changelog": - updaters = append(updaters, updater.Changelog()) - case "packagejson": - updaters = append(updaters, updater.PackageJson()) - default: - return fmt.Errorf("unknown updater: %s", name) - } - } - releaserPleaser := rp.New( f, logger, @@ -105,7 +88,7 @@ func run(cmd *cobra.Command, _ []string) error { conventionalcommits.NewParser(logger), versioning.SemVer, extraFiles, - updaters, + []updater.NewUpdater{updater.Generic}, ) return releaserPleaser.Run(ctx) @@ -130,26 +113,3 @@ func parseExtraFiles(input string) []string { return extraFiles } - -func parseUpdaters(input []string) []string { - names := []string{"changelog", "generic"} - - for _, u := range input { - if u == "" { - continue - } - - if strings.HasPrefix(u, "-") { - name := u[1:] - names = slices.DeleteFunc(names, func(existingName string) bool { return existingName == name }) - } else { - names = append(names, u) - } - } - - // Make sure we only have unique updaters - slices.Sort(names) - names = slices.Compact(names) - - return names -} diff --git a/cmd/rp/cmd/run_test.go b/cmd/rp/cmd/run_test.go index 4c6ceff..d4cea7a 100644 --- a/cmd/rp/cmd/run_test.go +++ b/cmd/rp/cmd/run_test.go @@ -57,48 +57,3 @@ dir/Chart.yaml"`, }) } } - -func Test_parseUpdaters(t *testing.T) { - tests := []struct { - name string - input []string - want []string - }{ - { - name: "empty", - input: []string{}, - want: []string{"changelog", "generic"}, - }, - { - name: "remove defaults", - input: []string{"-changelog", "-generic"}, - want: []string{}, - }, - { - name: "remove unknown is ignored", - input: []string{"-fooo"}, - want: []string{"changelog", "generic"}, - }, - { - name: "add new entry", - input: []string{"bar"}, - want: []string{"bar", "changelog", "generic"}, - }, - { - name: "duplicates are removed", - input: []string{"bar", "bar", "changelog"}, - want: []string{"bar", "changelog", "generic"}, - }, - { - name: "remove empty entries", - input: []string{""}, - want: []string{"changelog", "generic"}, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - got := parseUpdaters(tt.input) - assert.Equal(t, tt.want, got) - }) - } -} diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 0a22df1..b13bf24 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -25,7 +25,6 @@ - [Pull Request Options](reference/pr-options.md) - [GitHub Action](reference/github-action.md) - [GitLab CI/CD Component](reference/gitlab-cicd-component.md) -- [Updaters](reference/updaters.md) --- diff --git a/docs/guides/updating-arbitrary-files.md b/docs/guides/updating-arbitrary-files.md index e7df9a5..d4b65bf 100644 --- a/docs/guides/updating-arbitrary-files.md +++ b/docs/guides/updating-arbitrary-files.md @@ -10,8 +10,7 @@ In some situations it makes sense to have the current version committed in files ## Markers -The line that needs to be updated must have the marker -`x-releaser-pleaser-version` somewhere after the version that should be updated. +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: @@ -29,8 +28,7 @@ You need to tell `releaser-pleaser` which files it should update. This happens t ### 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: +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: ```yaml jobs: @@ -46,8 +44,7 @@ jobs: ### 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: +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: ```yaml include: @@ -64,4 +61,3 @@ include: - **Reference** - [GitHub Action](../reference/github-action.md#inputs) - [GitLab CI/CD Component](../reference/gitlab-cicd-component.md#inputs) - - [Updaters](../reference/updaters.md#generic-updater) diff --git a/docs/reference/github-action.md b/docs/reference/github-action.md index c5d595a..eec9789 100644 --- a/docs/reference/github-action.md +++ b/docs/reference/github-action.md @@ -8,20 +8,17 @@ The action is available as `apricote/releaser-pleaser` on GitHub.com. The `apricote/releaser-pleaser` action is released together with `releaser-pleaser` and they share the version number. -The action does not support floating tags (e.g. -`v1`) right now ([#31](https://github.com/apricote/releaser-pleaser/issues/31)). You have to use the full version or commit SHA instead: -`apricote/releaser-pleaser@v0.2.0`. +The action does not support floating tags (e.g. `v1`) right now ([#31](https://github.com/apricote/releaser-pleaser/issues/31)). You have to use the full version or commit SHA instead: `apricote/releaser-pleaser@v0.2.0`. ## Inputs The following inputs are supported by the `apricote/releaser-pleaser` GitHub Action. -| Input | Description | Default | Example | -|---------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------:|---------------------------------------------------------------------:| -| `branch` | This branch is used as the target for releases. | `main` | `master` | -| `token` | GitHub token for creating and updating release PRs | `$GITHUB_TOKEN` | `${{secrets.RELEASER_PLEASER_TOKEN}}` | -| `extra-files` | List of files that are scanned for version references by the generic updater. | `""` |
version/version.go
deploy/deployment.yaml |
-| `updaters` | List of updaters that are run. Default updaters can be removed by specifying them as -name. Multiple updaters should be concatenated with a comma. Default Updaters: changelog,generic | `""` | `-generic,packagejson` |
+| Input | Description | Default | Example |
+| ------------- | :----------------------------------------------------- | --------------: | -------------------------------------------------------------------: |
+| `branch` | This branch is used as the target for releases. | `main` | `master` |
+| `token` | GitHub token for creating and updating release PRs | `$GITHUB_TOKEN` | `${{secrets.RELEASER_PLEASER_TOKEN}}` |
+| `extra-files` | List of files that are scanned for version references. | `""` | version/version.go
deploy/deployment.yaml |
## Outputs
diff --git a/docs/reference/gitlab-cicd-component.md b/docs/reference/gitlab-cicd-component.md
index 3080fcf..b22d5b2 100644
--- a/docs/reference/gitlab-cicd-component.md
+++ b/docs/reference/gitlab-cicd-component.md
@@ -18,11 +18,10 @@ The component does not support floating tags (e.g.
The following inputs are supported by the component.
-| Input | Description | Default | Example |
-|------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------:|---------------------------------------------------------------------:|
-| `branch` | This branch is used as the target for releases. | `main` | `master` |
-| `token` (**required**) | GitLab access token for creating and updating release PRs | | `$RELEASER_PLEASER_TOKEN` |
-| `extra-files` | List of files that are scanned for version references by the generic updater. | `""` | version/version.go
deploy/deployment.yaml |
-| `updaters` | List of updaters that are run. Default updaters can be removed by specifying them as -name. Multiple updaters should be concatenated with a comma. Default Updaters: changelog,generic | `""` | `-generic,packagejson` |
-| `stage` | Stage the job runs in. Must exists. | `build` | `test` |
-| `needs` | Other jobs the releaser-pleaser job depends on. | `[]` | - validate-foo
- prepare-bar |
+| Input | Description | Default | Example |
+| ---------------------- | :-------------------------------------------------------- | ------: | -------------------------------------------------------------------: |
+| `branch` | This branch is used as the target for releases. | `main` | `master` |
+| `token` (**required**) | GitLab access token for creating and updating release PRs | | `$RELEASER_PLEASER_TOKEN` |
+| `extra-files` | List of files that are scanned for version references. | `""` | version/version.go
deploy/deployment.yaml |
+| `stage` | Stage the job runs in. Must exists. | `build` | `test` |
+| `needs` | Other jobs the releaser-pleaser job depends on. | `[]` | - validate-foo
- prepare-bar |
diff --git a/docs/reference/glossary.md b/docs/reference/glossary.md
index 8966f55..543f970 100644
--- a/docs/reference/glossary.md
+++ b/docs/reference/glossary.md
@@ -2,21 +2,17 @@
### Changelog
-The Changelog is a file in the repository (
-`CHANGELOG.md`) that contains the [Release Notes](#release-notes) for every release of that repository. Usually, new releases are added at the top of the file.
+The Changelog is a file in the repository (`CHANGELOG.md`) that contains the [Release Notes](#release-notes) for every release of that repository. Usually, new releases are added at the top of the file.
### Conventional Commits
-[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) is a specification for commit messages. It is the only supported commit message schema in
-`releaser-pleaser`. Follow the link to learn more.
+[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) is a specification for commit messages. It is the only supported commit message schema in `releaser-pleaser`. Follow the link to learn more.
### Forge
-A **forge
-** is a web-based collaborative software platform for both developing and sharing computer applications.[^wp-forge]
+A **forge** is a web-based collaborative software platform for both developing and sharing computer applications.[^wp-forge]
-Right now only **GitHub** is supported. We plan to support **GitLab
-** in the future ([#4](https://github.com/apricote/releaser-pleaser/issues/4)). For other forges like Forgejo or Gitea, please open an issue and submit a pull request.
+Right now only **GitHub** is supported. We plan to support **GitLab** in the future ([#4](https://github.com/apricote/releaser-pleaser/issues/4)). For other forges like Forgejo or Gitea, please open an issue and submit a pull request.
[^wp-forge]: Quote from [Wikipedia "Forge (software)"](