diff --git a/.github/actions/setup-mdbook/action.yaml b/.github/actions/setup-mdbook/action.yaml new file mode 100644 index 0000000..23e0665 --- /dev/null +++ b/.github/actions/setup-mdbook/action.yaml @@ -0,0 +1,16 @@ +name: "Setup mdbook" +inputs: + version: + description: "mdbook version" + +runs: + using: composite + steps: + - name: Setup mdbook + shell: bash + env: + url: https://github.com/rust-lang/mdbook/releases/download/${{ inputs.version }}/mdbook-${{ inputs.version }}-x86_64-unknown-linux-gnu.tar.gz + run: | + mkdir mdbook + curl -sSL "$url" | tar -xz --directory=./mdbook + echo `pwd`/mdbook >> $GITHUB_PATH diff --git a/.github/renovate.json5 b/.github/renovate.json5 new file mode 100644 index 0000000..74a660e --- /dev/null +++ b/.github/renovate.json5 @@ -0,0 +1,80 @@ +{ + "extends": [ + ":semanticCommits", + ":semanticCommitTypeAll(deps)", + ":semanticCommitScopeDisabled", + + ":dependencyDashboard", + ":approveMajorUpdates", + + ":automergeMinor", + ":automergeLinters", + ":automergeTesters", + ":automergeTypes", + + ":maintainLockFilesWeekly", + ":enableVulnerabilityAlerts", + "helpers:pinGitHubActionDigests" + ], + "packageRules": [ + { + "groupName": "linters", + "matchUpdateTypes": [ + "minor", + "patch" + ], + "matchDepNames": [ + "golangci/golangci-lint" + ], + "automerge": true + }, + { + "groupName": "testing", + "matchUpdateTypes": [ + "minor", + "patch" + ], + "matchDepNames": [ + "github.com/stretchr/testify" + ], + "automerge": true + }, + { + "groupName": "github-actions", + "matchUpdateTypes": [ + "minor", + "patch" + ], + "matchDepTypes": [ + "action" + ], + "automerge": true + }, + { + "groupName": "gitlab-ci", + "matchUpdateTypes": [ + "minor", + "patch" + ], + "matchPackageNames": [ + "registry.gitlab.com/gitlab-org/release-cli" + ], + "automerge": true + } + ], + "customManagers": [ + { + "customType": "regex", + "fileMatch": [ + ".+\\.ya?ml$" + ], + "matchStrings": [ + ": (?.+) # renovate: datasource=(?[a-z-]+) depName=(?[^\\s]+)(?: lookupName=(?[^\\s]+))?(?: versioning=(?[a-z-]+))?(?: extractVersion=(?[^\\s]+))?" + ] + } + ], + "postUpdateOptions": [ + "gomodUpdateImportPaths", + "gomodTidy" + ] +} diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 38a1f4c..6c040c8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -5,7 +5,6 @@ on: branches: [main] pull_request: - jobs: lint: runs-on: ubuntu-latest @@ -24,7 +23,6 @@ jobs: version: v1.60.1 # renovate: datasource=github-releases depName=golangci/golangci-lint args: --timeout 5m - test: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 908f3ad..22e29b7 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -8,33 +8,32 @@ jobs: deploy: runs-on: ubuntu-latest permissions: - contents: write # To push a branch - pages: write # To push to a GitHub Pages site + contents: write # To push a branch + pages: write # To push to a GitHub Pages site id-token: write # To update the deployment status + steps: - uses: actions/checkout@v4 with: lfs: "true" - - name: Install latest mdbook - run: | - tag=$(curl 'https://api.github.com/repos/rust-lang/mdbook/releases/latest' | jq -r '.tag_name') - url="https://github.com/rust-lang/mdbook/releases/download/${tag}/mdbook-${tag}-x86_64-unknown-linux-gnu.tar.gz" - mkdir mdbook - curl -sSL $url | tar -xz --directory=./mdbook - echo `pwd`/mdbook >> $GITHUB_PATH + + - uses: ./.github/actions/setup-mdbook + with: + version: v0.4.40 # renovate: datasource=github-releases depName=rust-lang/mdbook + - name: Build Book - run: | - # This assumes your book is in the root of your repository. - # Just add a `cd` here if you need to change to another directory. - cd docs - mdbook build + working-directory: docs + run: mdbook build + - name: Setup Pages uses: actions/configure-pages@v4 + - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: # Upload entire repository - path: 'docs/book' + path: "docs/book" + - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 742be9d..37024e6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -stages: [release] +stages: [ release ] # For the GitLab CI/CD component to be usable, it needs to be published in # the CI/CD catalog. This happens on new releases. @@ -6,7 +6,7 @@ stages: [release] # and create a corresponding GitLab Release. create-release: stage: release - image: registry.gitlab.com/gitlab-org/release-cli:latest + image: registry.gitlab.com/gitlab-org/release-cli:v0.18.0 script: echo "Creating release $CI_COMMIT_TAG" rules: - if: $CI_COMMIT_TAG diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f187be..1f8c321 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,7 @@ You can now edit the message for a pull request after merging by adding a \```rp - **cli**: show release PR url in log messages (#44) ## [v0.2.0](https://github.com/apricote/releaser-pleaser/releases/tag/v0.2.0) + ### Features - update version references in any files (#14) @@ -55,6 +56,7 @@ You can now edit the message for a pull request after merging by adding a \```rp - **action**: invalid quoting for extra-files arg (#25) ## [v0.2.0-beta.2](https://github.com/apricote/releaser-pleaser/releases/tag/v0.2.0-beta.2) + ### Features - update version references in any files (#14) @@ -65,6 +67,7 @@ You can now edit the message for a pull request after merging by adding a \```rp - **ci**: ko pipeline permissions (#23) ## [v0.2.0-beta.1](https://github.com/apricote/releaser-pleaser/releases/tag/v0.2.0-beta.1) + ### Features - update version references in any files (#14) @@ -74,13 +77,14 @@ You can now edit the message for a pull request after merging by adding a \```rp - **ci**: building release image fails (#21) ## [v0.2.0-beta.0](https://github.com/apricote/releaser-pleaser/releases/tag/v0.2.0-beta.0) + ### Features - update version references in any files (#14) ## [v0.1.0](https://github.com/apricote/releaser-pleaser/releases/tag/v0.1.0) -### This is the first release ever, so it also includes a lot of other functionality. +### This is the first release ever, so it also includes a lot of other functionality. ### Features diff --git a/README.md b/README.md index 6c282dd..afc56d9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # releaser-pleaser -`releaser-pleaser` is a tool designed to automate versioning and changelog management for your projects. Building on the concepts of [`release-please`](https://github.com/googleapis/release-please), it streamlines the release process through GitHub Actions or GitLab CI. +`releaser-pleaser` is a tool designed to automate versioning and changelog management for your projects. Building on the concepts of [ +`release-please`](https://github.com/googleapis/release-please), it streamlines the release process through GitHub Actions or GitLab CI. ## Features @@ -20,14 +21,18 @@ This project is still under active development. You can not reasonably use it ri ## Relation to `release-please` -After using `release-please` for 1.5 years, I've found it to be the best tool for low-effort releases currently available. While I appreciate many of its features, I identified several additional capabilities that would significantly enhance my workflow. Although it might be possible to incorporate these features into `release-please`, I decided to channel my efforts into creating a new tool that specifically addresses my needs. +After using +`release-please` for 1.5 years, I've found it to be the best tool for low-effort releases currently available. While I appreciate many of its features, I identified several additional capabilities that would significantly enhance my workflow. Although it might be possible to incorporate these features into +`release-please`, I decided to channel my efforts into creating a new tool that specifically addresses my needs. Key differences in `releaser-pleaser` include: - Support for multiple forges (both GitHub and GitLab) - Better support for pre-releases -One notable limitation of `release-please` is its deep integration with the GitHub API, making the addition of support for other platforms (like GitLab) a substantial undertaking. `releaser-pleaser` aims to overcome this limitation by design, offering a more versatile solution for automated release management across different platforms and project requirements. +One notable limitation of +`release-please` is its deep integration with the GitHub API, making the addition of support for other platforms (like GitLab) a substantial undertaking. +`releaser-pleaser` aims to overcome this limitation by design, offering a more versatile solution for automated release management across different platforms and project requirements. ## License