2026-01-23 00:45:54 +02:00
2026-01-22 23:38:30 +02:00
2026-01-22 23:38:30 +02:00
2026-01-23 01:10:51 +02:00
2026-01-22 23:42:02 +02:00

Reusable GitHub Workflows

A collection of reusable GitHub Actions workflows.

Workflows

Go Release (go-release.yml)

A complete CI/CD workflow for Go projects that handles testing, cross-platform builds, releases, and Homebrew tap updates.

Features

  • Runs tests with configurable test command
  • Cross-platform builds (Linux, macOS, Windows)
  • Automated releases via release-please
  • Automatic Homebrew tap updates via repository dispatch

Usage

name: Release

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

jobs:
  release:
    uses: chenasraf/workflows/.github/workflows/go-release.yml@main
    with:
      name: my-binary
    secrets:
      REPO_DISPATCH_PAT: ${{ secrets.REPO_DISPATCH_PAT }}

Inputs

Input Description Required Default
name Binary/project name Yes -
go-version Go version to use No 1.24
platforms JSON array of platforms to build No ["linux/amd64", "darwin/amd64", "darwin/arm64", "windows/amd64"]
package Go package path (empty for root) No ""
compress Compress build artifacts No true
test-command Test command to run No go test -v ./...
skip-tests Skip running tests No false
main-branch Main branch name for releases No master
homebrew-tap-repo Homebrew tap repo for dispatch (leave empty to skip) No ``

Secrets

Secret Description Required
REPO_DISPATCH_PAT PAT for dispatching to homebrew tap repo No

Example with Custom Options

jobs:
  release:
    uses: chenasraf/workflows/.github/workflows/go-release.yml@master
    with:
      name: my-cli
      go-version: '1.24'
      platforms: '["linux/amd64", "darwin/arm64"]'
      main-branch: main
      homebrew-tap-repo: myorg/homebrew-tap
    secrets:
      REPO_DISPATCH_PAT: ${{ secrets.REPO_DISPATCH_PAT }}

License

MIT

Description
No description provided
Readme MIT 70 KiB
Languages
Makefile 100%