mirror of https://github.com/statping/statping
attempt to use GH actions and xgo to build binaries
parent
70c5b672b3
commit
65d654b86d
|
@ -298,7 +298,7 @@ jobs:
|
||||||
timeoutRequest: 15000
|
timeoutRequest: 15000
|
||||||
delayRequest: 500
|
delayRequest: 500
|
||||||
|
|
||||||
build-binaries:
|
build-linux:
|
||||||
needs: compile
|
needs: compile
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
@ -307,30 +307,6 @@ jobs:
|
||||||
go-version: '1.14.2'
|
go-version: '1.14.2'
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Install cross compiling libraries
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y automake autogen build-essential ca-certificates libsqlite3-dev \
|
|
||||||
gcc-5-arm-linux-gnueabi g++-5-arm-linux-gnueabi libc6-dev-armel-cross linux-headers-generic \
|
|
||||||
gcc-5-arm-linux-gnueabihf g++-5-arm-linux-gnueabihf libc6-dev-armhf-cross \
|
|
||||||
gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu libc6-dev-arm64-cross \
|
|
||||||
gcc-5-mips-linux-gnu g++-5-mips-linux-gnu libc6-dev-mips-cross \
|
|
||||||
gcc-5-mipsel-linux-gnu g++-5-mipsel-linux-gnu libc6-dev-mipsel-cross \
|
|
||||||
gcc-5-mips64-linux-gnuabi64 g++-5-mips64-linux-gnuabi64 libc6-dev-mips64-cross \
|
|
||||||
gcc-5-mips64el-linux-gnuabi64 g++-5-mips64el-linux-gnuabi64 libc6-dev-mips64el-cross \
|
|
||||||
gcc-5-multilib g++-5-multilib gcc-mingw-w64 g++-mingw-w64 clang llvm-dev \
|
|
||||||
gcc-6-arm-linux-gnueabi g++-6-arm-linux-gnueabi libc6-dev-armel-cross \
|
|
||||||
gcc-6-arm-linux-gnueabihf g++-6-arm-linux-gnueabihf libc6-dev-armhf-cross \
|
|
||||||
gcc-6-aarch64-linux-gnu g++-6-aarch64-linux-gnu libc6-dev-arm64-cross \
|
|
||||||
gcc-6-mips-linux-gnu g++-6-mips-linux-gnu libc6-dev-mips-cross \
|
|
||||||
gcc-6-mipsel-linux-gnu g++-6-mipsel-linux-gnu libc6-dev-mipsel-cross \
|
|
||||||
gcc-6-mips64-linux-gnuabi64 g++-6-mips64-linux-gnuabi64 libc6-dev-mips64-cross \
|
|
||||||
gcc-6-mips64el-linux-gnuabi64 g++-6-mips64el-linux-gnuabi64 libc6-dev-mips64el-cross \
|
|
||||||
gcc-6-multilib gcc-7-multilib g++-6-multilib gcc-mingw-w64 g++-mingw-w64 clang llvm-dev \
|
|
||||||
libtool libxml2-dev uuid-dev libssl-dev swig openjdk-8-jdk pkg-config patch \
|
|
||||||
make xz-utils cpio wget zip unzip p7zip git mercurial bzr texinfo help2man cmake --no-install-recommends
|
|
||||||
sudo ln -s /usr/include/asm-generic/ /usr/include/asm
|
|
||||||
|
|
||||||
- name: Setting ENV's
|
- name: Setting ENV's
|
||||||
run: |
|
run: |
|
||||||
echo "::add-path::$(go env GOPATH)/bin"
|
echo "::add-path::$(go env GOPATH)/bin"
|
||||||
|
@ -348,20 +324,96 @@ jobs:
|
||||||
name: static-rice-box
|
name: static-rice-box
|
||||||
path: ./source
|
path: ./source
|
||||||
|
|
||||||
- name: Build Binaries
|
- name: Build Linux Binaries
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ env.VERSION }}
|
VERSION: ${{ env.VERSION }}
|
||||||
COMMIT: $GITHUB_SHA
|
COMMIT: $GITHUB_SHA
|
||||||
run: make build-folders build-linux build-linux-arm build-darwin build-win compress-folders
|
run: make build-linux build-linux-arm
|
||||||
|
|
||||||
- name: Upload Builds
|
- name: Upload Builds
|
||||||
uses: actions/upload-artifact@v1
|
uses: actions/upload-artifact@v1
|
||||||
with:
|
with:
|
||||||
name: builds
|
name: builds-linux
|
||||||
|
path: ./build
|
||||||
|
|
||||||
|
build-windows:
|
||||||
|
needs: compile
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: '1.14.2'
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setting ENV's
|
||||||
|
run: |
|
||||||
|
echo "::add-path::$(go env GOPATH)/bin"
|
||||||
|
echo "::add-path::/opt/hostedtoolcache/node/10.20.1/x64/bin"
|
||||||
|
echo ::set-env name=VERSION::$(cat version.txt)
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Download Go mods
|
||||||
|
run: |
|
||||||
|
make test-deps
|
||||||
|
|
||||||
|
- name: Download Compiled Frontend (rice-box.go)
|
||||||
|
uses: actions/download-artifact@v1
|
||||||
|
with:
|
||||||
|
name: static-rice-box
|
||||||
|
path: ./source
|
||||||
|
|
||||||
|
- name: Build Windows Binaries
|
||||||
|
env:
|
||||||
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: $GITHUB_SHA
|
||||||
|
run: make build-win
|
||||||
|
|
||||||
|
- name: Upload Builds
|
||||||
|
uses: actions/upload-artifact@v1
|
||||||
|
with:
|
||||||
|
name: builds-windows
|
||||||
|
path: ./build
|
||||||
|
|
||||||
|
build-mac:
|
||||||
|
needs: compile
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: '1.14.2'
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setting ENV's
|
||||||
|
run: |
|
||||||
|
echo "::add-path::$(go env GOPATH)/bin"
|
||||||
|
echo "::add-path::/opt/hostedtoolcache/node/10.20.1/x64/bin"
|
||||||
|
echo ::set-env name=VERSION::$(cat version.txt)
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Download Go mods
|
||||||
|
run: |
|
||||||
|
make test-deps
|
||||||
|
|
||||||
|
- name: Download Compiled Frontend (rice-box.go)
|
||||||
|
uses: actions/download-artifact@v1
|
||||||
|
with:
|
||||||
|
name: static-rice-box
|
||||||
|
path: ./source
|
||||||
|
|
||||||
|
- name: Build MacOSX Binaries
|
||||||
|
env:
|
||||||
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: $GITHUB_SHA
|
||||||
|
run: make build-darwin
|
||||||
|
|
||||||
|
- name: Upload Builds
|
||||||
|
uses: actions/upload-artifact@v1
|
||||||
|
with:
|
||||||
|
name: builds-mac
|
||||||
path: ./build
|
path: ./build
|
||||||
|
|
||||||
upload-release:
|
upload-release:
|
||||||
needs: [test, test-postman-sqlite, test-postman-mysql, test-postman-postgres, build-binaries]
|
needs: [test, test-postman-sqlite, test-postman-mysql, test-postman-postgres, build-linux, build-windows, build-mac]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
@ -373,10 +425,22 @@ jobs:
|
||||||
echo ::set-env name=VERSION::$(cat version.txt)
|
echo ::set-env name=VERSION::$(cat version.txt)
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Download Builds
|
- name: Download Linux Builds
|
||||||
uses: actions/download-artifact@v1
|
uses: actions/download-artifact@v1
|
||||||
with:
|
with:
|
||||||
name: builds
|
name: builds-linux
|
||||||
|
path: ./builds
|
||||||
|
|
||||||
|
- name: Download Windows Builds
|
||||||
|
uses: actions/download-artifact@v1
|
||||||
|
with:
|
||||||
|
name: builds-windows
|
||||||
|
path: ./builds
|
||||||
|
|
||||||
|
- name: Download MacOSX Builds
|
||||||
|
uses: actions/download-artifact@v1
|
||||||
|
with:
|
||||||
|
name: builds-mac
|
||||||
path: ./builds
|
path: ./builds
|
||||||
|
|
||||||
- name: Upload Releases
|
- name: Upload Releases
|
||||||
|
|
30
Makefile
30
Makefile
|
@ -156,25 +156,29 @@ generate:
|
||||||
build-all: clean compile build-folders build-linux build-linux-arm build-darwin build-win compress-folders
|
build-all: clean compile build-folders build-linux build-linux-arm build-darwin build-win compress-folders
|
||||||
|
|
||||||
build-win:
|
build-win:
|
||||||
CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc-posix CXX=x86_64-w64-mingw32-g++-posix GO111MODULE="on" GOOS=windows GOARCH=amd64 \
|
xgo --go=1.14.2 --dest=build --targets="windows-6.0/386,windows-6.0/amd64" -out statping -ldflags="-s -w -extldflags -static -X main.VERSION=${VERSION}" --pkg cmd /home/runner/work/statping/statping
|
||||||
go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-windows-amd64/statping.exe ./cmd
|
# CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc-posix CXX=x86_64-w64-mingw32-g++-posix GO111MODULE="on" GOOS=windows GOARCH=amd64 \
|
||||||
CGO_ENABLED=1 CC=i686-w64-mingw32-gcc-posix CXX=i686-w64-mingw32-g++-posix GO111MODULE="on" GOOS=windows GOARCH=386 \
|
# go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-windows-amd64/statping.exe ./cmd
|
||||||
go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-windows-386/statping.exe ./cmd
|
# CGO_ENABLED=1 CC=i686-w64-mingw32-gcc-posix CXX=i686-w64-mingw32-g++-posix GO111MODULE="on" GOOS=windows GOARCH=386 \
|
||||||
|
# go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-windows-386/statping.exe ./cmd
|
||||||
|
|
||||||
build-darwin:
|
build-darwin:
|
||||||
GO111MODULE="on" GOOS=darwin GOARCH=amd64 go build -a -ldflags "-s -w -X main.VERSION=${VERSION}" -o releases/statping-darwin-amd64/statping --tags "darwin" ./cmd
|
xgo --go=1.14.2 --dest=build --targets="darwin/386,darwin/amd64" -out statping -ldflags="-s -w -X main.VERSION=${VERSION}" --pkg cmd /home/runner/work/statping/statping
|
||||||
|
# GO111MODULE="on" GOOS=darwin GOARCH=amd64 go build -a -ldflags "-s -w -X main.VERSION=${VERSION}" -o releases/statping-darwin-amd64/statping --tags "darwin" ./cmd
|
||||||
|
|
||||||
build-linux:
|
build-linux:
|
||||||
CGO_ENABLED=1 GO111MODULE="on" GOOS=linux GOARCH=amd64 \
|
xgo --go=1.14.2 --dest=build --targets="linux/386,linux/amd64" -out statping -ldflags="-s -w -extldflags -static -X main.VERSION=${VERSION}" --pkg cmd /home/runner/work/statping/statping
|
||||||
go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-amd64/statping --tags "linux" ./cmd
|
# CGO_ENABLED=1 GO111MODULE="on" GOOS=linux GOARCH=amd64 \
|
||||||
CGO_ENABLED=1 GO111MODULE="on" GOOS=linux GOARCH=386 \
|
# go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-amd64/statping --tags "linux" ./cmd
|
||||||
go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-386/statping --tags "linux" ./cmd
|
# CGO_ENABLED=1 GO111MODULE="on" GOOS=linux GOARCH=386 \
|
||||||
|
# go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-386/statping --tags "linux" ./cmd
|
||||||
|
|
||||||
build-linux-arm:
|
build-linux-arm:
|
||||||
CGO_ENABLED=1 CC=arm-linux-gnueabihf-gcc-6 CXX=arm-linux-gnueabihf-g++-6 GO111MODULE="on" GOOS=linux GOARCH=arm GOARM=7 \
|
xgo --go=1.14.2 --dest=build --targets="linux/arm-7,linux/arm64" -out statping -ldflags="-s -w -extldflags -static -X main.VERSION=${VERSION}" --pkg cmd /home/runner/work/statping/statping
|
||||||
go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-arm/statping ./cmd
|
# CGO_ENABLED=1 CC=arm-linux-gnueabihf-gcc-6 CXX=arm-linux-gnueabihf-g++-6 GO111MODULE="on" GOOS=linux GOARCH=arm GOARM=7 \
|
||||||
CGO_ENABLED=1 CC=aarch64-linux-gnu-gcc-6 CXX=aarch64-linux-gnu-g++-6 GO111MODULE="on" GOOS=linux GOARCH=arm64 \
|
# go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-arm/statping ./cmd
|
||||||
go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-arm64/statping ./cmd
|
# CGO_ENABLED=1 CC=aarch64-linux-gnu-gcc-6 CXX=aarch64-linux-gnu-g++-6 GO111MODULE="on" GOOS=linux GOARCH=arm64 \
|
||||||
|
# go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-arm64/statping ./cmd
|
||||||
|
|
||||||
build-folders:
|
build-folders:
|
||||||
mkdir build || true
|
mkdir build || true
|
||||||
|
|
Loading…
Reference in New Issue