Skip to content

Fix for oracle open cursor and foreign key issue #547

Fix for oracle open cursor and foreign key issue

Fix for oracle open cursor and foreign key issue #547

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
runner: macos-latest
- 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@v3
- name: Set up Go
uses: actions/setup-go@v4
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@v3
with:
name: bin-${{ matrix.os }}-${{ matrix.arch }}
path: bin/
- name: Slack Notification (not success)
uses: lazy-actions/slatify@master
if: "! success()"
continue-on-error: true
with:
job_name: '*build*'
type: ${{ job.status }}
icon_emoji: ":octocat:"
url: ${{ secrets.SLACK_WEBHOOK }}
token: ${{ secrets.GITHUB_TOKEN }}
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@v3
- name: Set up Go
uses: actions/setup-go@v4
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@v3
with:
name: bin-oracle-${{ matrix.os }}-${{ matrix.arch }}
path: bin/
- name: Slack Notification (not success)
uses: lazy-actions/slatify@master
if: "! success()"
continue-on-error: true
with:
job_name: '*build*'
type: ${{ job.status }}
icon_emoji: ":octocat:"
url: ${{ secrets.SLACK_WEBHOOK }}
token: ${{ secrets.GITHUB_TOKEN }}
release:
name: Release
needs:
- gox
- gox-oracle
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version-file: "go.mod"
id: go
- name: Download artifacts from darwin-amd64
uses: actions/download-artifact@v3
with:
name: bin-darwin-amd64
path: bin/
- name: Download artifacts from darwin-arm64
uses: actions/download-artifact@v3
with:
name: bin-darwin-arm64
path: bin/
- name: Download artifacts from freebsd-386
uses: actions/download-artifact@v3
with:
name: bin-freebsd-386
path: bin/
- name: Download artifacts from freebsd-amd64
uses: actions/download-artifact@v3
with:
name: bin-freebsd-amd64
path: bin/
- name: Download artifacts from freebsd-arm
uses: actions/download-artifact@v3
with:
name: bin-freebsd-arm
path: bin/
- name: Download artifacts from linux-386
uses: actions/download-artifact@v3
with:
name: bin-linux-386
path: bin/
- name: Download artifacts from linux-amd64
uses: actions/download-artifact@v3
with:
name: bin-linux-amd64
path: bin/
- name: Download artifacts from linux-arm
uses: actions/download-artifact@v3
with:
name: bin-linux-arm
path: bin/
- name: Download artifacts from netbsd-amd64
uses: actions/download-artifact@v3
with:
name: bin-netbsd-amd64
path: bin/
- name: Download artifacts from netbsd-arm
uses: actions/download-artifact@v3
with:
name: bin-netbsd-arm
path: bin/
- name: Download artifacts from netbsd-386
uses: actions/download-artifact@v3
with:
name: bin-netbsd-386
path: bin/
- name: Download artifacts from openbsd-386
uses: actions/download-artifact@v3
with:
name: bin-openbsd-386
path: bin/
- name: Download artifacts from openbsd-amd64
uses: actions/download-artifact@v3
with:
name: bin-openbsd-amd64
path: bin/
- name: Download artifacts from windows-amd64
uses: actions/download-artifact@v3
with:
name: bin-windows-amd64
path: bin/
- name: Download artifacts from windows-386
uses: actions/download-artifact@v3
with:
name: bin-windows-386
path: bin/
- name: Download artifacts from darwin-amd64
uses: actions/download-artifact@v3
with:
name: bin-oracle-darwin-amd64
path: bin/
- name: Download artifacts from linux-386
uses: actions/download-artifact@v3
with:
name: bin-oracle-linux-386
path: bin/
- name: Download artifacts from linux-amd64
uses: actions/download-artifact@v3
with:
name: bin-oracle-linux-amd64
path: bin/
- name: Download artifacts from windows-amd64
uses: actions/download-artifact@v3
with:
name: bin-oracle-windows-amd64
path: bin/
- 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: lazy-actions/slatify@master
if: always()
continue-on-error: true
with:
job_name: '*release*'
type: ${{ job.status }}
icon_emoji: ":octocat:"
url: ${{ secrets.SLACK_WEBHOOK }}
token: ${{ secrets.GITHUB_TOKEN }}