mirror of https://github.com/cloudreve/Cloudreve
Feat: cross compile script
parent
98c122f047
commit
d80446d30f
|
@ -6,6 +6,7 @@
|
||||||
*.dylib
|
*.dylib
|
||||||
*.db
|
*.db
|
||||||
*.bin
|
*.bin
|
||||||
|
/release/
|
||||||
|
|
||||||
# Test binary, build with `go test -c`
|
# Test binary, build with `go test -c`
|
||||||
*.test
|
*.test
|
||||||
|
|
11
.travis.yml
11
.travis.yml
|
@ -3,7 +3,12 @@ go:
|
||||||
- 1.13.x
|
- 1.13.x
|
||||||
git:
|
git:
|
||||||
depth: 1
|
depth: 1
|
||||||
|
install:
|
||||||
|
- sudo apt install gcc-mingw-w64
|
||||||
|
- chmod +x ./build.sh
|
||||||
script:
|
script:
|
||||||
- go test -coverprofile=coverage.txt -covermode=atomic ./...
|
- ./build.sh -r b
|
||||||
after_success:
|
# script:
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
# - go test -coverprofile=coverage.txt -covermode=atomic ./...
|
||||||
|
# after_success:
|
||||||
|
# - bash <(curl -s https://codecov.io/bash)
|
||||||
|
|
24
build.sh
24
build.sh
|
@ -26,6 +26,7 @@ buildAssets () {
|
||||||
yarn run build
|
yarn run build
|
||||||
|
|
||||||
if ! [ -x "$(command -v statik)" ]; then
|
if ! [ -x "$(command -v statik)" ]; then
|
||||||
|
export CGO_ENABLED=0
|
||||||
go get github.com/rakyll/statik
|
go get github.com/rakyll/statik
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -43,21 +44,34 @@ _build() {
|
||||||
IFS=/ read -r -a arr <<<"$osarch"
|
IFS=/ read -r -a arr <<<"$osarch"
|
||||||
os="${arr[0]}"
|
os="${arr[0]}"
|
||||||
arch="${arr[1]}"
|
arch="${arr[1]}"
|
||||||
|
gcc="${arr[2]}"
|
||||||
|
|
||||||
# Go build to build the binary.
|
# Go build to build the binary.
|
||||||
export GOOS=$os
|
export GOOS=$os
|
||||||
export GOARCH=$arch
|
export GOARCH=$arch
|
||||||
|
export CC=$gcc
|
||||||
|
export CGO_ENABLED=1
|
||||||
|
|
||||||
go build -a -o cloudreve_$VERSION_$GOOS_$GOARCH -ldflags " -X 'github.com/HFO4/cloudreve/pkg/conf.BackendVersion=$VERSION' -X 'github.com/HFO4/cloudreve/pkg/conf.LastCommit=$COMMIT_SHA'"
|
out="release/cloudreve_${VERSION}_${os}_${arch}"
|
||||||
|
go build -a -o "${out}" -ldflags " -X 'github.com/HFO4/cloudreve/pkg/conf.BackendVersion=$VERSION' -X 'github.com/HFO4/cloudreve/pkg/conf.LastCommit=$COMMIT_SHA'"
|
||||||
|
|
||||||
|
if [ "$os" = "windows" ]; then
|
||||||
|
mv $out release/cloudreve.exe
|
||||||
|
zip -j -q "${out}.zip" release/cloudreve.exe
|
||||||
|
rm -f "release/cloudreve.exe"
|
||||||
|
else
|
||||||
|
mv $out release/cloudreve
|
||||||
|
tar -zcvf "${out}.tar.gz" -C release cloudreve
|
||||||
|
rm -f "release/cloudreve"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
release(){
|
release(){
|
||||||
cd $REPO
|
cd $REPO
|
||||||
export CGO_ENABLED=1
|
|
||||||
## List of architectures and OS to test coss compilation.
|
## List of architectures and OS to test coss compilation.
|
||||||
SUPPORTED_OSARCH="linux/arm64 darwin/amd64 windows/amd64 linux/arm linux/386 windows/386"
|
SUPPORTED_OSARCH="linux/amd64/gcc linux/arm/arm-linux-gnueabihf-gcc windows/amd64/x86_64-w64-mingw32-gcc"
|
||||||
|
|
||||||
echo "Release builds for OS/Arch: ${SUPPORTED_OSARCH}"
|
echo "Release builds for OS/Arch/CC: ${SUPPORTED_OSARCH}"
|
||||||
for each_osarch in ${SUPPORTED_OSARCH}; do
|
for each_osarch in ${SUPPORTED_OSARCH}; do
|
||||||
_build "${each_osarch}"
|
_build "${each_osarch}"
|
||||||
done
|
done
|
||||||
|
@ -81,7 +95,7 @@ while getopts "bacr:d" o; do
|
||||||
BINARY="true"
|
BINARY="true"
|
||||||
;;
|
;;
|
||||||
r)
|
r)
|
||||||
ASSETS="true"
|
# ASSETS="true"
|
||||||
RELEASE="true"
|
RELEASE="true"
|
||||||
;;
|
;;
|
||||||
d)
|
d)
|
||||||
|
|
|
@ -46,7 +46,7 @@ var spaces = map[string]string{
|
||||||
// Println 打印
|
// Println 打印
|
||||||
func (ll *Logger) Println(prefix string, msg string) {
|
func (ll *Logger) Println(prefix string, msg string) {
|
||||||
// TODO Release时去掉
|
// TODO Release时去掉
|
||||||
color.NoColor = false
|
// color.NoColor = false
|
||||||
|
|
||||||
c := color.New()
|
c := color.New()
|
||||||
_, _ = c.Printf(
|
_, _ = c.Printf(
|
||||||
|
|
Loading…
Reference in New Issue