mirror of https://github.com/statping/statping
cross compiling Makefile
parent
3e724ccb04
commit
a1caedb722
|
@ -237,16 +237,16 @@ 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 install libc6-armel-cross libc6-dev-armel-cross \
|
|
||||||
binutils-arm-linux-gnueabi libncurses5-dev gcc-arm-linux-gnueabihf \
|
|
||||||
g++-arm-linux-gnueabihf gcc-arm-linux-gnueabi g++-arm-linux-gnueabi -y
|
|
||||||
|
|
||||||
- name: Install Libraries
|
- name: Install Libraries
|
||||||
run: |
|
run: |
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install libc-dev gcc-multilib build-essential musl-dev gcc g++ -y
|
sudo apt install libc-dev gcc-multilib build-essential musl-dev gcc g++ -y
|
||||||
|
|
||||||
|
- name: Install cross compiling libraries
|
||||||
|
run: sudo apt-get install libc6-armel-cross libc6-dev-armel-cross \
|
||||||
|
binutils-arm-linux-gnueabi libncurses5-dev gcc-arm-linux-gnueabihf \
|
||||||
|
g++-arm-linux-gnueabihf gcc-arm-linux-gnueabi g++-arm-linux-gnueabi -y
|
||||||
|
|
||||||
- name: Setting ENV's
|
- name: Setting ENV's
|
||||||
run: |
|
run: |
|
||||||
echo "::add-path::$(go env GOPATH)/bin"
|
echo "::add-path::$(go env GOPATH)/bin"
|
||||||
|
@ -364,17 +364,10 @@ jobs:
|
||||||
draft: false
|
draft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
files: |
|
files: |
|
||||||
linux/statping-freebsd-386.tar.gz
|
|
||||||
linux/statping-freebsd-amd64.tar.gz
|
|
||||||
linux/statping-freebsd-arm.tar.gz
|
|
||||||
linux/statping-linux-386.tar.gz
|
linux/statping-linux-386.tar.gz
|
||||||
linux/statping-linux-amd64.tar.gz
|
linux/statping-linux-amd64.tar.gz
|
||||||
linux/statping-linux-arm.tar.gz
|
linux/statping-linux-arm.tar.gz
|
||||||
linux/statping-linux-arm64.tar.gz
|
linux/statping-linux-arm64.tar.gz
|
||||||
linux/statping-openbsd-386.tar.gz
|
|
||||||
linux/statping-openbsd-amd64.tar.gz
|
|
||||||
linux/statping-openbsd-arm.tar.gz
|
|
||||||
linux/statping-openbsd-arm64.tar.gz
|
|
||||||
|
|
||||||
- name: Upload MaxOSX Release
|
- name: Upload MaxOSX Release
|
||||||
id: upload-darwin-asset
|
id: upload-darwin-asset
|
||||||
|
@ -403,7 +396,6 @@ jobs:
|
||||||
files: |
|
files: |
|
||||||
windows/statping-windows-386.zip
|
windows/statping-windows-386.zip
|
||||||
windows/statping-windows-amd64.zip
|
windows/statping-windows-amd64.zip
|
||||||
windows/statping-windows-arm.zip
|
|
||||||
|
|
||||||
docker-release:
|
docker-release:
|
||||||
needs: upload-release
|
needs: upload-release
|
||||||
|
|
76
Makefile
76
Makefile
|
@ -151,17 +151,6 @@ install-local: build
|
||||||
generate:
|
generate:
|
||||||
cd source && go generate
|
cd source && go generate
|
||||||
|
|
||||||
# cross compile build for darwin, windows, linux, and ARM archictures.
|
|
||||||
build-bins: build-folders
|
|
||||||
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
|
|
||||||
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
|
|
||||||
GO111MODULE="on" GOOS=darwin GOARCH=amd64 go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-darwin-amd64/statping ./cmd
|
|
||||||
GO111MODULE="on" GOOS=darwin GOARCH=386 go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-darwin-386/statping ./cmd
|
|
||||||
GO111MODULE="on" GOOS=linux GOARCH=amd64 go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-amd64/statping ./cmd
|
|
||||||
GO111MODULE="on" GOOS=linux GOARCH=386 go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-386/statping ./cmd
|
|
||||||
CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ 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
|
|
||||||
CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ GO111MODULE="on" GOOS=linux GOARCH=arm64 GOARM=8 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
|
||||||
for os in windows darwin linux;\
|
for os in windows darwin linux;\
|
||||||
|
@ -182,58 +171,27 @@ compress-folders:
|
||||||
tar -czf releases/statping-$$os-$$arch.tar.gz -C releases/statping-$$os-$$arch statping || true; \
|
tar -czf releases/statping-$$os-$$arch.tar.gz -C releases/statping-$$os-$$arch statping || true; \
|
||||||
done \
|
done \
|
||||||
done
|
done
|
||||||
|
find ./releases/ -name "*.tar.gz" -type f -size +1M -exec mv "{}" build/ \;
|
||||||
|
|
||||||
|
build-linux: build-folders
|
||||||
|
GO111MODULE="on" GOOS=linux GOARCH=amd64 go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-amd64/statping ./cmd
|
||||||
|
GO111MODULE="on" GOOS=linux GOARCH=386 go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-386/statping ./cmd
|
||||||
|
CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ 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
|
||||||
|
CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ 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
|
||||||
|
make compress-folders
|
||||||
|
|
||||||
|
build-mac: build-folders
|
||||||
|
GO111MODULE="on" GOOS=darwin GOARCH=amd64 go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-darwin-amd64/statping ./cmd
|
||||||
|
GO111MODULE="on" GOOS=darwin GOARCH=386 go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-darwin-386/statping ./cmd
|
||||||
|
make compress-folders
|
||||||
|
|
||||||
|
build-win: build-folders
|
||||||
|
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
|
||||||
|
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
|
||||||
chmod +x releases/statping-windows-386/statping.exe || true
|
chmod +x releases/statping-windows-386/statping.exe || true
|
||||||
chmod +x releases/statping-windows-amd64/statping.exe || true
|
chmod +x releases/statping-windows-amd64/statping.exe || true
|
||||||
zip -j releases/statping-windows-386.zip releases/statping-windows-386/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-amd64.zip releases/statping-windows-amd64/statping.exe || true; \
|
||||||
find ./releases/ -name "*.tar.gz" -type f -size +1M -exec mv "{}" build/ \;
|
|
||||||
find ./releases/ -name "*.zip" -type f -size +1M -exec mv "{}" build/ \;
|
|
||||||
|
|
||||||
build-linux:
|
|
||||||
mkdir build || true
|
|
||||||
export PWD=`pwd`
|
|
||||||
@for arch in 386 amd64;\
|
|
||||||
do \
|
|
||||||
echo "Building v${VERSION} for linux-$$arch"; \
|
|
||||||
mkdir -p releases/statping-linux-$$arch/; \
|
|
||||||
GO111MODULE="on" GOOS=linux GOARCH=$$arch go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-$$arch/statping ${PWD}/cmd || true; \
|
|
||||||
chmod +x releases/statping-linux-$$arch/statping || true; \
|
|
||||||
tar -czf releases/statping-linux-$$arch.tar.gz -C releases/statping-linux-$$arch statping || true; \
|
|
||||||
done
|
|
||||||
@for arch in arm arm64;\
|
|
||||||
do \
|
|
||||||
echo "Building v${VERSION} for linux-$$arch"; \
|
|
||||||
mkdir -p releases/statping-linux-$$arch/; \
|
|
||||||
CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ GO111MODULE="on" GOOS=linux GOARCH=$$arch go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-linux-$$arch/statping ${PWD}/cmd || true; \
|
|
||||||
chmod +x releases/statping-linux-$$arch/statping || true; \
|
|
||||||
tar -czf releases/statping-linux-$$arch.tar.gz -C releases/statping-linux-$$arch statping || true; \
|
|
||||||
done
|
|
||||||
find ./releases/ -name "*.tar.gz" -type f -size +1M -exec mv "{}" build/ \;
|
|
||||||
|
|
||||||
build-mac:
|
|
||||||
mkdir build || true
|
|
||||||
export PWD=`pwd`
|
|
||||||
@for arch in $(ARCHS);\
|
|
||||||
do \
|
|
||||||
echo "Building v${VERSION} for darwin-$$arch"; \
|
|
||||||
mkdir -p releases/statping-darwin-$$arch/; \
|
|
||||||
GO111MODULE="on" GOOS=darwin GOARCH=$$arch go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-darwin-$$arch/statping ${PWD}/cmd || true; \
|
|
||||||
chmod +x releases/statping-darwin-$$arch/statping || true; \
|
|
||||||
tar -czf releases/statping-darwin-$$arch.tar.gz -C releases/statping-darwin-$$arch statping || true; \
|
|
||||||
done
|
|
||||||
find ./releases/ -name "*.tar.gz" -type f -size +1M -exec mv "{}" build/ \;
|
|
||||||
|
|
||||||
build-win:
|
|
||||||
mkdir build || true
|
|
||||||
export PWD=`pwd`
|
|
||||||
@for arch in $(ARCHS);\
|
|
||||||
do \
|
|
||||||
echo "Building v${VERSION} for windows-$$arch"; \
|
|
||||||
mkdir -p releases/statping-windows-$$arch/; \
|
|
||||||
GO111MODULE="on" GOOS=windows GOARCH=$$arch go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION}" -o releases/statping-windows-$$arch/statping.exe ${PWD}/cmd || true; \
|
|
||||||
chmod +x releases/statping-windows-$$arch/statping.exe || true; \
|
|
||||||
zip -j releases/statping-windows-$$arch.zip releases/statping-windows-$$arch/statping.exe || true; \
|
|
||||||
done
|
|
||||||
find ./releases/ -name "*.zip" -type f -size +1M -exec mv "{}" build/ \;
|
find ./releases/ -name "*.zip" -type f -size +1M -exec mv "{}" build/ \;
|
||||||
|
|
||||||
# remove files for a clean compile/build
|
# remove files for a clean compile/build
|
||||||
|
|
Loading…
Reference in New Issue