Skip to content

Merge pull request #1615 from sue445/dependabot/go_modules/github.com… #1062

Merge pull request #1615 from sue445/dependabot/go_modules/github.com…

Merge pull request #1615 from sue445/dependabot/go_modules/github.com… #1062

Workflow file for this run

name: build
on:
push:
branches:
- "main"
tags:
- "v*"
pull_request:
types:
- opened
- synchronize
- reopened
jobs:
gox:
name: gox
strategy:
fail-fast: false
matrix:
os:
- darwin
- freebsd
- linux
- netbsd
- openbsd
- windows
arch:
- amd64
- arm
- arm64
- 386
exclude:
- os: darwin
arch: arm
- os: darwin
arch: 386
- os: freebsd
arch: arm64
- os: linux
arch: arm64
- os: netbsd
arch: arm64
- os: openbsd
arch: arm
- os: openbsd
arch: arm64
- os: windows
arch: arm
- os: windows
arch: arm64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: "go.mod"
id: go
- name: make package
run: |
set -xe
go install github.com/mitchellh/gox@latest
make gox_with_zip
env:
GOX_OSARCH: ${{ matrix.os }}/${{ matrix.arch }}
- uses: actions/upload-artifact@v4
with:
name: bin-${{ matrix.os }}-${{ matrix.arch }}
path: bin/
- name: Slack Notification (not success)
uses: act10ns/slack@v2
if: "! success()"
continue-on-error: true
with:
status: ${{ job.status }}
webhook-url: ${{ secrets.SLACK_WEBHOOK }}
release:
name: release
needs:
- gox
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: "go.mod"
id: go
# FIXME: Workaround for https://github.com/actions/download-artifact/issues/249
- name: Download all artifacts with retry
uses: Wandalen/wretry.action@master
with:
action: actions/download-artifact@v4
with: |
path: bin/
pattern: bin-*
merge-multiple: true
attempt_limit: 5
attempt_delay: 1000
- name: Upload to GitHub Releases
run: |
set -xe
export PUSH_EVENT_REF=$(jq --raw-output .ref "$GITHUB_EVENT_PATH")
if [ "$(echo $PUSH_EVENT_REF | grep refs/tags/ | wc -l)" = "0" ]; then
echo "ref is not a tag: ${PUSH_EVENT_REF}"
exit 1
fi
export TAGNAME=$(echo $PUSH_EVENT_REF | sed -e 's!refs/tags/!!g')
export USERNAME=$(echo $GITHUB_REPOSITORY | cut -d / -f 1)
export REPO=$(echo $GITHUB_REPOSITORY | cut -d / -f 2)
go install github.com/tcnksm/ghr@latest
if [ "$(echo $TAGNAME | grep -E 'v[0-9.]+$' | wc -l)" = "0" ]; then
GHR_OPTIONS="${GHR_OPTIONS} -prerelease"
fi
ghr -u ${USERNAME} -r ${REPO} -n ${TAGNAME} -b "Release ${TAGNAME}" ${GHR_OPTIONS} ${TAGNAME} bin/
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: startsWith(github.ref, 'refs/tags/')
- name: Slack Notification
uses: act10ns/slack@v2
if: always()
continue-on-error: true
with:
status: ${{ job.status }}
webhook-url: ${{ secrets.SLACK_WEBHOOK }}