mirror of https://github.com/statping/statping
github actions build
parent
c99ad9cf02
commit
73ee6616cb
|
@ -187,7 +187,7 @@ jobs:
|
|||
timeoutRequest: 15000
|
||||
delayRequest: 1000
|
||||
|
||||
build-mac:
|
||||
build-binaries:
|
||||
needs: compile
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
@ -196,6 +196,30 @@ jobs:
|
|||
go-version: '1.14.2'
|
||||
- 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 \
|
||||
gcc-5-arm-linux-gnueabi g++-5-arm-linux-gnueabi libc6-dev-armel-cross linux-headers-gen \
|
||||
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
|
||||
run: |
|
||||
echo "::add-path::$(go env GOPATH)/bin"
|
||||
|
@ -205,10 +229,7 @@ jobs:
|
|||
|
||||
- name: Download Go mods
|
||||
if: steps.golangcache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
go mod download
|
||||
go mod verify
|
||||
make test-deps
|
||||
run: make test-deps
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
uses: actions/download-artifact@v1
|
||||
|
@ -220,108 +241,16 @@ jobs:
|
|||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: $GITHUB_SHA
|
||||
run: make build-mac
|
||||
run: make build-folders build-linux build-linux-arm build-darwin build-win compress-folders
|
||||
|
||||
- name: Upload MacOSX Builds
|
||||
- name: Upload Builds
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: darwin-builds
|
||||
path: ./build
|
||||
|
||||
build-linux:
|
||||
needs: compile
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.14.2'
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install Libraries
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install libc-dev gcc-multilib build-essential musl-dev gcc g++ -y
|
||||
|
||||
- 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
|
||||
if: steps.golangcache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
go mod download
|
||||
go mod verify
|
||||
make test-deps
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
- name: Setup tmate session
|
||||
uses: mxschmitt/action-tmate@v2
|
||||
|
||||
- name: Build Binaries
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: $GITHUB_SHA
|
||||
run: |
|
||||
go env
|
||||
make build-linux
|
||||
|
||||
- name: Upload Linux Builds
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: linux-builds
|
||||
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
|
||||
if: steps.golangcache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
go mod download
|
||||
go mod verify
|
||||
make test-deps
|
||||
|
||||
- name: Download Compiled Frontend (rice-box.go)
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: static-rice-box
|
||||
path: ./source
|
||||
|
||||
- name: Build Binaries
|
||||
env:
|
||||
VERSION: ${{ env.VERSION }}
|
||||
COMMIT: $GITHUB_SHA
|
||||
run: make build-win
|
||||
|
||||
- name: Upload Windows Builds
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: windows-builds
|
||||
name: builds
|
||||
path: ./build
|
||||
|
||||
upload-release:
|
||||
needs: [test, test-postman, build-linux, build-mac, build-windows]
|
||||
needs: [test, test-postman, build-binaries]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
@ -333,26 +262,14 @@ jobs:
|
|||
echo ::set-env name=VERSION::$(cat version.txt)
|
||||
shell: bash
|
||||
|
||||
- name: Download Linux Builds
|
||||
- name: Download Builds
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: linux-builds
|
||||
path: ./linux
|
||||
name: builds
|
||||
path: ./builds
|
||||
|
||||
- name: Download MacOSX Builds
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: darwin-builds
|
||||
path: ./darwin
|
||||
|
||||
- name: Download Windows Builds
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: windows-builds
|
||||
path: ./windows
|
||||
|
||||
- name: Upload Linux Release
|
||||
id: upload-linux-asset
|
||||
- name: Upload Releases
|
||||
id: upload-assets
|
||||
uses: softprops/action-gh-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
@ -362,38 +279,15 @@ jobs:
|
|||
draft: false
|
||||
prerelease: false
|
||||
files: |
|
||||
linux/statping-linux-386.tar.gz
|
||||
linux/statping-linux-amd64.tar.gz
|
||||
linux/statping-linux-arm.tar.gz
|
||||
linux/statping-linux-arm64.tar.gz
|
||||
|
||||
- name: Upload MaxOSX Release
|
||||
id: upload-darwin-asset
|
||||
uses: softprops/action-gh-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
VERSION: ${{ env.VERSION }}
|
||||
with:
|
||||
tag_name: v${{ env.VERSION }}
|
||||
draft: false
|
||||
prerelease: false
|
||||
files: |
|
||||
darwin/statping-darwin-386.tar.gz
|
||||
darwin/statping-darwin-amd64.tar.gz
|
||||
|
||||
- name: Upload Windows Release
|
||||
id: upload-windows-asset
|
||||
uses: softprops/action-gh-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
VERSION: ${{ env.VERSION }}
|
||||
with:
|
||||
tag_name: v${{ env.VERSION }}
|
||||
draft: false
|
||||
prerelease: false
|
||||
files: |
|
||||
windows/statping-windows-386.zip
|
||||
windows/statping-windows-amd64.zip
|
||||
builds/statping-linux-386.tar.gz
|
||||
builds/statping-linux-amd64.tar.gz
|
||||
builds/statping-linux-arm.tar.gz
|
||||
builds/statping-linux-arm64.tar.gz
|
||||
builds/statping-darwin-386.tar.gz
|
||||
builds/statping-darwin-amd64.tar.gz
|
||||
builds/statping-windows-386.zip
|
||||
builds/statping-windows-amd64.zip
|
||||
builds/statping-windows-arm.zip
|
||||
|
||||
docker-release:
|
||||
needs: upload-release
|
||||
|
|
53
Makefile
53
Makefile
|
@ -2,7 +2,7 @@ VERSION=$(shell cat version.txt)
|
|||
SIGN_KEY=B76D61FAA6DB759466E83D9964B9C6AAE2D55278
|
||||
BINARY_NAME=statping
|
||||
GOBUILD=go build -a
|
||||
GOVERSION=1.14.2
|
||||
GOVERSION=1.14.0
|
||||
XGO=xgo -go $(GOVERSION) --dest=build
|
||||
BUILDVERSION=-ldflags "-X main.VERSION=${VERSION} -X main.COMMIT=$(TRAVIS_COMMIT)"
|
||||
TRVIS_SECRET=O3/2KTOV8krv+yZ1EB/7D1RQRe6NdpFUEJNJkMS/ollYqmz3x2mCO7yIgIJKCKguLXZxjM6CxJcjlCrvUwibL+8BBp7xJe4XFIOrjkPvbbVPry4HkFZCf2GfcUK6o4AByQ+RYqsW2F17Fp9KLQ1rL3OT3eLTwCAGKx3tlY8y+an43zkmo5dN64V6sawx26fh6XTfww590ey+ltgQTjf8UPNup2wZmGvMo9Hwvh/bYR/47bR6PlBh6vhlKWyotKf2Fz1Bevbu0zc35pee5YlsrHR+oSF+/nNd/dOij34BhtqQikUR+zQVy9yty8SlmneVwD3yOENvlF+8roeKIXb6P6eZnSMHvelhWpAFTwDXq2N3d/FIgrQtLxsAFTI3nTHvZgs6OoTd6dA0wkhuIGLxaL3FOeztCdxP5J/CQ9GUcTvifh5ArGGwYxRxQU6rTgtebJcNtXFISP9CEUR6rwRtb6ax7h6f1SbjUGAdxt+r2LbEVEk4ZlwHvdJ2DtzJHT5DQtLrqq/CTUgJ8SJFMkrJMp/pPznKhzN4qvd8oQJXygSXX/gz92MvoX0xgpNeLsUdAn+PL9KketfR+QYosBz04d8k05E+aTqGaU7FUCHPTLwlOFvLD8Gbv0zsC/PWgSLXTBlcqLEz5PHwPVHTcVzspKj/IyYimXpCSbvu1YOIjyc=
|
||||
|
@ -151,6 +151,24 @@ install-local: build
|
|||
generate:
|
||||
cd source && go generate
|
||||
|
||||
build-all: clean compile build-folders build-linux build-linux-arm build-darwin build-win compress-folders
|
||||
|
||||
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 go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-windows-amd64/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:
|
||||
CGO_ENABLED=1 GO111MODULE="on" GOOS=darwin GOARCH=amd64 go build -a -ldflags "-s -w -X main.VERSION=${VERSION}" -o releases/statping-darwin-amd64/statping --tags "libsqlite3 darwin" ./cmd
|
||||
CGO_ENABLED=1 GO111MODULE="on" GOOS=darwin GOARCH=386 go build -a -ldflags "-s -w -X main.VERSION=${VERSION}" -o releases/statping-darwin-386/statping --tags "libsqlite3 darwin" ./cmd
|
||||
|
||||
build-linux:
|
||||
CGO_ENABLED=1 GO111MODULE="on" GOOS=linux GOARCH=amd64 go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-amd64/statping --tags "libsqlite3 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 "libsqlite3 linux" ./cmd
|
||||
|
||||
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 go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-arm/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:
|
||||
mkdir build || true
|
||||
for os in windows darwin linux;\
|
||||
|
@ -171,32 +189,13 @@ compress-folders:
|
|||
tar -czf releases/statping-$$os-$$arch.tar.gz -C releases/statping-$$os-$$arch statping || true; \
|
||||
done \
|
||||
done
|
||||
chmod +x releases/statping-windows-386/statping.exe || true
|
||||
chmod +x releases/statping-windows-amd64/statping.exe || true
|
||||
chmod +x releases/statping-windows-arm/statping.exe || true
|
||||
zip -j releases/statping-windows-386.zip releases/statping-windows-386/statping.exe || true; \
|
||||
zip -j releases/statping-windows-amd64.zip releases/statping-windows-amd64/statping.exe || true; \
|
||||
zip -j releases/statping-windows-arm.zip releases/statping-windows-arm/statping.exe || true; \
|
||||
find ./releases/ -name "*.tar.gz" -type f -size +1M -exec mv "{}" build/ \;
|
||||
|
||||
build-linux:
|
||||
xgo --go $(GOVERSION) --dest=build --out statping --ldflags="-s -w -extldflags -static -X main.VERSION=${VERSION}" --targets="linux/amd64,linux/386,linux/arm-7,linux/arm64" --pkg cmd .
|
||||
for arch in 386 amd64 arm-7 arm64;\
|
||||
do \
|
||||
chmod +x build/statping-linux-$$arch && mv build/statping-linux-$$arch build/statping; \
|
||||
tar -czf build/statping-linux-$$arch.tar.gz -C build statping; \
|
||||
rm -f build/statping; \
|
||||
done
|
||||
|
||||
build-mac:
|
||||
xgo --go $(GOVERSION) --dest=build --out statping --ldflags="-s -w -extldflags -static -X main.VERSION=${VERSION}" --targets="darwin-10.11/386,darwin-10.11/amd64" --pkg cmd .
|
||||
for arch in 386 amd64;\
|
||||
do \
|
||||
chmod +x build/statping-darwin-10.11-$$arch && mv build/statping-darwin-10.11-$$arch build/statping; \
|
||||
tar -czf build/statping-darwin-10.11-$$arch.tar.gz -C build statping; \
|
||||
rm -f build/statping; \
|
||||
done
|
||||
|
||||
build-win:
|
||||
xgo --go $(GOVERSION) --dest=build --out statping --ldflags="-s -w -extldflags -static -X main.VERSION=${VERSION}" --targets="windows-6.0/386,windows-6.0/amd64" --pkg cmd .
|
||||
chmod +x build/statping-windows-6.0-amd64.exe
|
||||
chmod +x build/statping-windows-6.0-386.exe
|
||||
mv build/statping-windows-6.0-amd64.exe build/statping.exe && zip -j build/statping-windows-amd64.zip build/statping.exe && rm -f build/statping.exe; \
|
||||
mv build/statping-windows-6.0-386.exe build/statping.exe && zip -j build/statping-windows-386.zip build/statping.exe && rm -f build/statping.exe; \
|
||||
find ./releases/ -name "*.zip" -type f -size +1M -exec mv "{}" build/ \;
|
||||
|
||||
# remove files for a clean compile/build
|
||||
|
@ -238,8 +237,6 @@ print_details:
|
|||
@echo \==== Monitoring and IDE ====
|
||||
@echo \Grafana: http://localhost:3000 \(username: admin, password: admin\)
|
||||
|
||||
build-all: clean compile build-linux build-mac build-win
|
||||
|
||||
coverage: test-deps
|
||||
$(GOPATH)/bin/goveralls -coverprofile=coverage.out -service=travis -repotoken $(COVERALLS)
|
||||
|
||||
|
|
Loading…
Reference in New Issue