mirror of https://github.com/statping/statping
snapcraft build, binary building libs, workflows
parent
4ad93f8767
commit
132863bb63
|
@ -306,6 +306,46 @@ jobs:
|
||||||
timeoutRequest: 30000
|
timeoutRequest: 30000
|
||||||
delayRequest: 600
|
delayRequest: 600
|
||||||
|
|
||||||
|
build-binaries:
|
||||||
|
needs: compile
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
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 libsqlite3-dev \
|
||||||
|
libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi \
|
||||||
|
libncurses5-dev build-essential bison flex libssl-dev bc gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf \
|
||||||
|
gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libsqlite3-dev gcc-mingw-w64 gcc-mingw-w64-x86-64
|
||||||
|
|
||||||
|
- name: Setting ENV's
|
||||||
|
run: |
|
||||||
|
echo "::add-path::$(go env GOPATH)/bin"
|
||||||
|
echo "::add-path::/opt/hostedtoolcache/node/12.18.2/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 Binaries
|
||||||
|
env:
|
||||||
|
VERSION: ${{ env.VERSION }}
|
||||||
|
COMMIT: $GITHUB_SHA
|
||||||
|
run: make build-folders build-linux build-linux-arm build-darwin build-win compress-folders
|
||||||
|
|
||||||
docker-release:
|
docker-release:
|
||||||
needs: [test, test-postman-sqlite, test-postman-mysql, test-postman-postgres]
|
needs: [test, test-postman-sqlite, test-postman-mysql, test-postman-postgres]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
|
@ -5,9 +5,6 @@ on:
|
||||||
- master
|
- master
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**.md'
|
- '**.md'
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
compile:
|
compile:
|
||||||
|
@ -317,25 +314,9 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y automake autogen build-essential ca-certificates libsqlite3-dev \
|
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 \
|
libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi \
|
||||||
gcc-5-arm-linux-gnueabihf g++-5-arm-linux-gnueabihf libc6-dev-armhf-cross \
|
libncurses5-dev build-essential bison flex libssl-dev bc gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf \
|
||||||
gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu libc6-dev-arm64-cross \
|
gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libsqlite3-dev gcc-mingw-w64 gcc-mingw-w64-x86-64
|
||||||
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: |
|
||||||
|
|
10
Makefile
10
Makefile
|
@ -158,11 +158,16 @@ 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 \
|
CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ 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
|
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 \
|
CGO_ENABLED=1 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ 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
|
go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-windows-386/statping.exe ./cmd
|
||||||
|
|
||||||
|
build-deps:
|
||||||
|
apt install libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi \
|
||||||
|
libncurses5-dev build-essential bison flex libssl-dev bc gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf \
|
||||||
|
gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libsqlite3-dev gcc-mingw-w64 gcc-mingw-w64-x86-64
|
||||||
|
|
||||||
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 "netgo darwin" ./cmd
|
GO111MODULE="on" GOOS=darwin GOARCH=amd64 go build -a -ldflags "-s -w -X main.VERSION=${VERSION}" -o releases/statping-darwin-amd64/statping --tags "netgo darwin" ./cmd
|
||||||
|
|
||||||
|
@ -353,6 +358,7 @@ buildx-base: multiarch
|
||||||
docker buildx rm statping-base
|
docker buildx rm statping-base
|
||||||
|
|
||||||
multiarch:
|
multiarch:
|
||||||
|
mkdir /tmp/.buildx-cache || true
|
||||||
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||||
|
|
||||||
.PHONY: all build certs multiarch build-all buildx-base buildx-dev buildx-latest build-alpine test-all test test-api docker frontend up down print_details lite sentry-release snapcraft build-linux build-mac build-win build-all postman
|
.PHONY: all build certs multiarch build-all buildx-base buildx-dev buildx-latest build-alpine test-all test test-api docker frontend up down print_details lite sentry-release snapcraft build-linux build-mac build-win build-all postman
|
||||||
|
|
|
@ -12,16 +12,35 @@ description: >
|
||||||
type: app
|
type: app
|
||||||
confinement: strict
|
confinement: strict
|
||||||
grade: stable
|
grade: stable
|
||||||
|
architectures:
|
||||||
|
- build-on: amd64
|
||||||
|
- build-on: armhf
|
||||||
|
- build-on: arm64
|
||||||
|
|
||||||
parts:
|
adopt-info: statping
|
||||||
statping:
|
|
||||||
plugin: dump
|
|
||||||
source: ./build/statping-linux.tar.gz
|
|
||||||
|
|
||||||
apps:
|
apps:
|
||||||
statping:
|
statping:
|
||||||
command: statping
|
command: statping
|
||||||
plugs:
|
plugs:
|
||||||
- home
|
- home
|
||||||
- network-bind
|
|
||||||
- network
|
- network
|
||||||
|
- network-bind
|
||||||
|
|
||||||
|
parts:
|
||||||
|
statping:
|
||||||
|
plugin: git
|
||||||
|
source: https://github.com/statping/statping.git
|
||||||
|
source-type: git
|
||||||
|
override-pull: |
|
||||||
|
snapcraftctl set-version "$(cat version.txt)"
|
||||||
|
override-build: |
|
||||||
|
export GOPATH=$PWD
|
||||||
|
cd src/github.com/statping/statping
|
||||||
|
GOOS=linux go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=$(cat version.txt)" -o statping --tags "netgo linux" ./cmd
|
||||||
|
build-snaps:
|
||||||
|
- go
|
||||||
|
build-packages:
|
||||||
|
- git
|
||||||
|
- sed
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue