Skip to content

Release

Release #1

Workflow file for this run

name: Release
on:
release:
types: [published]
workflow_dispatch:
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- os: linux
arch: amd64
suffix: ""
- os: linux
arch: arm64
suffix: ""
- os: windows
arch: amd64
suffix: .exe
- os: darwin
arch: amd64
suffix: ""
- os: darwin
arch: arm64
suffix: ""
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.26"
- name: Build
env:
GOOS: ${{ matrix.os }}
GOARCH: ${{ matrix.arch }}
run: go build -o global-entry-slot-notifier${{ matrix.suffix }} ./cmd
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: global-entry-slot-notifier-${{ matrix.os }}-${{ matrix.arch }}
path: global-entry-slot-notifier${{ matrix.suffix }}
release:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
path: artifacts
merge-multiple: true
- name: Collect binaries with unique names
run: |
mkdir -p release
for dir in artifacts/global-entry-slot-notifier-*; do
base=$(basename "$dir" | sed 's/global-entry-slot-notifier-/global-entry-slot-notifier_/')
suffix=""
[[ "$dir" == *windows* ]] && suffix=".exe"
for f in "$dir"/*; do
cp "$f" "release/${base}${suffix}"
done
done
ls -la release/
- name: Upload to release
uses: softprops/action-gh-release@v2
with:
files: release/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}