build: update workflows

This commit is contained in:
2026-01-23 23:36:55 +02:00
parent b9bbf7559f
commit df2057230a
6 changed files with 14 additions and 270 deletions

View File

@@ -3,40 +3,10 @@ name: Manual Homebrew Release
on:
workflow_dispatch:
permissions:
contents: read
jobs:
release-homebrew:
name: Trigger Homebrew Formula Update
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Get latest tag
id: latest
run: |
tag=$(gh release view --json tagName -q .tagName)
echo "Latest release tag: $tag"
echo "tag=$tag" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Send dispatch to homebrew-tap
env:
GH_TOKEN: ${{ secrets.REPO_DISPATCH_PAT }}
run: |
tag="${{ steps.latest.outputs.tag }}"
repo="${{ github.event.repository.name }}"
data="{\"event_type\":\"trigger-from-release\",\"client_payload\":{\"tag\":\"$tag\",\"repo\":\"$repo\"}}"
echo "Dispatching tag $tag from $repo"
echo "Data: $data"
curl -X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer $GH_TOKEN" \
https://api.github.com/repos/chenasraf/homebrew-tap/dispatches \
-d "$data"
echo "Dispatched tag $tag from $repo"
echo "Created job on https://github.com/chenasraf/homebrew-tap/actions"
homebrew:
uses: chenasraf/workflows/.github/workflows/manual-homebrew-release.yml@master
with:
homebrew-tap-repo: chenasraf/homebrew-tap
secrets:
REPO_DISPATCH_PAT: ${{ secrets.REPO_DISPATCH_PAT }}

View File

@@ -11,114 +11,10 @@ permissions:
pull-requests: write
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.23'
- name: Test
run: go test -v ./...
generate:
name: Build for ${{ matrix.platform }}
runs-on: ubuntu-latest
strategy:
matrix:
include:
- platform: linux/amd64
label: linux-amd64
- platform: darwin/amd64
label: darwin-amd64
- platform: darwin/arm64
label: darwin-arm64
- platform: windows/amd64
label: windows-amd64
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Build for ${{ matrix.label }}
uses: chenasraf/go-cross-build@v1
with:
platforms: ${{ matrix.platform }}
package: ''
name: 'vstask'
compress: 'true'
dest: dist
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: "dist-${{ matrix.label }}"
path: dist
release-please:
name: Release
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
outputs:
release_created: ${{ steps.release.outputs.release_created }}
tag_name: ${{ steps.release.outputs.tag_name }}
needs:
- test
- generate
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download all builds
uses: actions/download-artifact@v4
with:
path: dist
- name: Verify Release Artifacts
run: |
ls -la dist
for i in "linux-amd64" "darwin-amd64" "windows-amd64" "darwin-arm64"; do
if [[ ! -f ./dist/dist-$i/vstask-$i.tar.gz ]]; then
echo "File not found: ./dist/dist-$i/vstask-$i.tar.gz"
exit 1
fi
done
- name: Run Release Please
uses: googleapis/release-please-action@v4
id: release
with:
release-type: simple
- name: Upload Release Artifacts
if: ${{ steps.release.outputs.release_created }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
for i in "linux-amd64" "darwin-amd64" "darwin-arm64" "windows-amd64"; do
gh release upload "${{ steps.release.outputs.tag_name }}" "./dist/dist-$i/vstask-$i.tar.gz"
done
release-homebrew:
name: Homebrew Release
needs: [release-please]
if: ${{ needs.release-please.outputs.release_created }}
runs-on: ubuntu-latest
steps:
- name: Send dispatch to homebrew-tap
env:
GH_TOKEN: ${{ secrets.REPO_DISPATCH_PAT }}
run: |
repo="${{ github.event.repository.name }}"
tag="${{ needs.release-please.outputs.tag_name }}"
data="{\"event_type\":\"trigger-from-release\",\"client_payload\":{\"tag\":\"$tag\",\"repo\":\"$repo\"}}"
echo "Dispatching tag $tag from $repo"
echo "Data: $data"
curl -X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer $GH_TOKEN" \
https://api.github.com/repos/chenasraf/homebrew-tap/dispatches \
-d "$data"
echo "Dispatched tag $tag from $repo"
echo "Created job on https://github.com/chenasraf/homebrew-tap/actions"
release:
uses: chenasraf/workflows/.github/workflows/go-release.yml@master
with:
name: sofmani
homebrew-tap-repo: chenasraf/homebrew-tap
secrets:
REPO_DISPATCH_PAT: ${{ secrets.REPO_DISPATCH_PAT }}

View File

@@ -34,7 +34,7 @@ jobs:
with:
platforms: 'linux/amd64, darwin/amd64, windows/amd64' # , darwin/arm64' # '
package: ''
name: 'vstask'
name: 'sofmani'
compress: 'true'
dest: 'dist'
- name: Upload builds

View File

@@ -1,58 +0,0 @@
name: Manual Homebrew Release
on:
workflow_dispatch:
permissions:
contents: read
jobs:
release-homebrew:
name: Trigger Homebrew Formula Update
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Get latest release info
id: latest
run: |
tag=$(gh release view --json tagName -q .tagName)
echo "Latest release tag: $tag"
echo "tag=$tag" >> "$GITHUB_OUTPUT"
# Get release body and escape for JSON
body=$(gh release view --json body -q .body)
# Use delimiter for multiline output
echo "body<<EOF" >> "$GITHUB_OUTPUT"
echo "$body" >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Send dispatch to homebrew-tap
env:
GH_TOKEN: ${{ secrets.REPO_DISPATCH_PAT }}
run: |
tag="${{ steps.latest.outputs.tag }}"
repo="${{ github.event.repository.name }}"
# Use jq to properly escape the body for JSON
body=$(cat <<'BODY_EOF'
${{ steps.latest.outputs.body }}
BODY_EOF
)
data=$(jq -n \
--arg tag "$tag" \
--arg repo "$repo" \
--arg body "$body" \
'{event_type: "trigger-from-release", client_payload: {tag: $tag, repo: $repo, body: $body}}')
echo "Dispatching tag $tag from $repo"
echo "Data: $data"
curl -X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer $GH_TOKEN" \
https://api.github.com/repos/chenasraf/homebrew-tap/dispatches \
-d "$data"
echo "Dispatched tag $tag from $repo"
echo "Created job on https://github.com/chenasraf/homebrew-tap/actions"

View File

@@ -1,20 +0,0 @@
name: Release
on:
push:
branches: ["**"]
pull_request:
branches: ["**"]
permissions:
contents: write
pull-requests: write
jobs:
release:
uses: chenasraf/workflows/.github/workflows/go-release.yml@master
with:
name: vstask
homebrew-tap-repo: chenasraf/homebrew-tap
secrets:
REPO_DISPATCH_PAT: ${{ secrets.REPO_DISPATCH_PAT }}

View File

@@ -1,44 +0,0 @@
name: Test
on:
push:
branches:
- develop
pull_request:
branches:
- master
jobs:
build:
name: Build & Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.23'
- name: Build
run: go build -v
- name: Test
run: go test -v ./...
- name: Create dist/ dir
run: mkdir dist
- name: Generate build files
uses: chenasraf/go-cross-build@v1
with:
platforms: 'linux/amd64, darwin/amd64, windows/amd64' # , darwin/arm64' # '
package: ''
name: 'vstask'
compress: 'true'
dest: 'dist'
- name: Upload builds
uses: actions/upload-artifact@v4
with:
name: dist
path: dist