Skip to content

Migrate to act10ns/slack #601

Migrate to act10ns/slack

Migrate to act10ns/slack #601

Workflow file for this run

name: build
on:
push:
branches:
- "*"
tags:
- "v*"
pull_request:
types:
- opened
- synchronize
- reopened
env:
GO111MODULE: "on"
PKG_CONFIG_PATH: /usr/local/lib/pkgconfig/
LD_LIBRARY_PATH: /opt/oracle/instantclient
jobs:
gox:
name: gox
strategy:
fail-fast: false
matrix:
os:
- darwin
- freebsd
- linux
- netbsd
- openbsd
- windows
arch:
- amd64
- arm
- arm64
- 386
include:
- os: darwin
arch: amd64
runner: macos-latest
- os: darwin
arch: arm64
runner: macos-14
- os: freebsd
runner: ubuntu-latest
- os: linux
runner: ubuntu-latest
- os: netbsd
runner: ubuntu-latest
- os: openbsd
runner: ubuntu-latest
- os: windows
runner: ubuntu-latest
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: ${{ matrix.runner }}
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
- name: Set up Go
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 clean gox-plant_erd zip
env:
GOX_OSARCH: ${{ matrix.os }}/${{ matrix.arch }}
- name: Upload artifacts
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 }}
gox-oracle:
name: gox-oracle
strategy:
fail-fast: false
matrix:
os:
- darwin
- linux
- windows
arch:
- amd64
- 386
include:
- os: darwin
runner: macos-latest
- os: linux
runner: ubuntu-latest
- os: windows
runner: windows-latest
exclude:
- os: darwin
arch: 386
- os: windows
arch: 386
runs-on: ${{ matrix.runner }}
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: "go.mod"
id: go
- name: Setup
shell: bash
run: |
set -xe
if [ "${RUNNER_OS}" = "Windows" ]; then
export LD_LIBRARY_PATH="C:${LD_LIBRARY_PATH}"
fi
.github/workflows/setup.sh
pkg-config --cflags --libs oci8
env:
RUNNER_OS: ${{ runner.os }}
TARGET_OS: ${{ matrix.os }}
TARGET_ARCH: ${{ matrix.arch }}
- name: make package
shell: bash
run: |
set -xe
if [ "${RUNNER_OS}" = "Windows" ]; then
export LD_LIBRARY_PATH="C:${LD_LIBRARY_PATH}"
# Convert "C:\Users\runneradmin\go" to "/c/Users/runneradmin/go"
export GOPATH=`go env GOPATH | sed 's!C:\\\\!/c/!g' | sed 's!\\\\!/!g'`
else
export GOPATH=`go env GOPATH`
fi
export PATH=$GOPATH/bin:$PATH
go install github.com/mitchellh/gox@latest
if [ -n "${GOX_CC}" ]; then
which $GOX_CC
export CC=$GOX_CC
fi
if [ -n "${GOX_CXX}" ]; then
which $GOX_CXX
export CXX=$GOX_CXX
fi
make clean gox-plant_erd-oracle zip
env:
RUNNER_OS: ${{ runner.os }}
GOX_OSARCH: ${{ matrix.os }}/${{ matrix.arch }}
GOX_CC: ${{ matrix.cc }}
GOX_CXX: ${{ matrix.cxx }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: bin-oracle-${{ 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
- gox-oracle
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
- name: Set up Go
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 }}