Skip to content

Release

Release #15

Workflow file for this run

name: Release
on:
push:
tags:
- "v*.*.*"
jobs:
release:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: "1.25.1"
- name: Get version
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Cache Go modules
uses: actions/cache@v4
id: cache
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Cache status
run: |
echo "Cache hit: ${{ steps.cache.outputs.cache-hit }}"
- name: Download dependencies
run: make mod
- name: Run tests
run: make test
- name: Build and package all platforms
run: make package-all VERSION=${{ steps.version.outputs.VERSION }}
- name: Generate checksums
run: |
cd bin/packages
sha256sum *.tar.gz > checksums.txt
- name: Generate Release Notes
id: release_notes
run: |
.github/scripts/generate-release-notes.sh ${{ steps.version.outputs.VERSION }} > release_notes.md
- name: Create Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ steps.version.outputs.VERSION }}
name: Release ${{ steps.version.outputs.VERSION }}
body_path: release_notes.md
files: |
bin/packages/*
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}