diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 6904fef8..0fb2cc18 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -1,86 +1,32 @@ -# -# Copyright (c) 2023 Red Hat, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -name: Publish release +name: goreleaser on: push: tags: - v* -jobs: - release: - name: Publish release +permissions: + contents: write + +jobs: + goreleaser: runs-on: ubuntu-latest steps: - - name: Checkout the source - uses: actions/checkout@v3 - - - name: Setup Python - uses: actions/setup-python@v2 + - + name: Checkout + uses: actions/checkout@v4 with: - python-version: '3.10' - cache: 'pip' - - - name: Install Python modules - run: pip install -r .github/workflows/requirements.txt - - - name: Create release - shell: python - run: | - import re - import requests - - # Get the context and secret data that we will need: - repository = "${{ github.repository }}" - reference = "${{ github.ref }}" - token = "${{ secrets.GITHUB_TOKEN }}" - - # Calculate the version number: - version = re.sub(r"^refs/tags/v(.*)$", r"\1", reference) - - # Get the list of changes: - body = "" - with open("CHANGES.md", "r") as stream: - while True: - line = stream.readline() - if line == "" or line.startswith("## " + version): - break - while True: - line = stream.readline() - if line == "" or line.startswith("## "): - break - body += line - - # Send the request to create the release: - response = requests.post( - headers={ - "Authorization": f"Bearer {token}", - "Content-Type": "application/json", - "Accept": "application/json", - }, - json={ - "tag_name": f"v{version}", - "name": f"Release {version}", - "body": body, - }, - url=( - "https://api.github.com" - f"/repos/{repository}/releases" - ), - ) - response.raise_for_status() + fetch-depth: 0 + - + name: Set up Go + uses: actions/setup-go@v5 + - + name: Run GoReleaser + uses: goreleaser/goreleaser-action@v6 + with: + distribution: goreleaser + version: '~> v2' + args: release --clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 00000000..5e72376d --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,17 @@ +version: 2 + +release: + prerelease: auto + mode: append + +changelog: + sort: asc + groups: + - title: Features + regexp: '^.*?(?:[a-zA-Z]+-\d+ \| )?feat(?:\([[:word:]]+\))??!?:.+' + order: 0 + - title: "Bug fixes" + regexp: '^.*?(?:[a-zA-Z]+-\d+ \| )?fix(?:\([[:word:]]+\))??!?:.+' + order: 1 + - title: Others + order: 999 \ No newline at end of file