50 lines
1.7 KiB
YAML
50 lines
1.7 KiB
YAML
name: release
|
|
|
|
on:
|
|
create:
|
|
tags:
|
|
- v*
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
env:
|
|
CHOCOLATEY_VERSION: 2.2.2
|
|
|
|
jobs:
|
|
goreleaser:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Install Snapcraft & Chocolatey
|
|
# from https://github.com/twpayne/chezmoi/blob/5293b40b48e678c461d68d06b635010173cac970/.github/workflows/main.yml#L154C1-L167C38
|
|
run: |
|
|
sudo apt-get --quiet update
|
|
sudo apt-get --no-install-suggests --no-install-recommends --quiet --yes install musl-tools snapcraft
|
|
# https://github.com/goreleaser/goreleaser/issues/1715
|
|
# https://bugs.launchpad.net/snapcraft/+bug/1889741
|
|
mkdir -p "${HOME}/.cache/snapcraft/download"
|
|
mkdir -p "${HOME}/.cache/snapcraft/stage-packages"
|
|
mkdir -p /opt/chocolatey
|
|
wget -q -O - "https://github.com/chocolatey/choco/releases/download/${CHOCOLATEY_VERSION}/chocolatey.v${CHOCOLATEY_VERSION}.tar.gz" | tar -xz -C "/opt/chocolatey"
|
|
echo '#!/bin/bash' >> /usr/local/bin/choco
|
|
echo 'mono /opt/chocolatey/choco.exe $@' >> /usr/local/bin/choco
|
|
chmod +x /usr/local/bin/choco
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v4
|
|
with:
|
|
go-version: '1.21'
|
|
- name: Run GoReleaser
|
|
uses: goreleaser/goreleaser-action@v4
|
|
with:
|
|
distribution: goreleaser
|
|
version: latest
|
|
args: release --clean
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }}
|
|
CHOCOLATEY_API_KEY: ${{ secrets.CHOCOLATEY_API_KEY }}
|