diff options
author | Wei-Ning Huang <w@dexon.org> | 2019-04-12 18:14:43 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@byzantine-lab.io> | 2019-06-15 22:09:55 +0800 |
commit | 4ad9119a92ea63b0568f1100729a8cf377adfe2a (patch) | |
tree | 93578b9ee96c4ca3f68e639ef9321dd1e334e946 | |
parent | d5daf97dba3156ef9adbf129a9d1e276f80d1095 (diff) | |
download | go-tangerine-4ad9119a92ea63b0568f1100729a8cf377adfe2a.tar.gz go-tangerine-4ad9119a92ea63b0568f1100729a8cf377adfe2a.tar.zst go-tangerine-4ad9119a92ea63b0568f1100729a8cf377adfe2a.zip |
build: disable static built by default (#359)
-rw-r--r-- | .travis.yml | 163 | ||||
-rw-r--r-- | Dockerfile | 2 | ||||
-rw-r--r-- | Dockerfile.alltools | 2 | ||||
-rw-r--r-- | build/ci.go | 22 | ||||
-rw-r--r-- | vendor/github.com/dexon-foundation/bls/ffi/go/bls/bls.go | 2 |
5 files changed, 35 insertions, 156 deletions
diff --git a/.travis.yml b/.travis.yml index 4e33d4f0f..e152368e7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,12 +32,11 @@ matrix: - ulimit -n - unset -f cd # workaround for https://github.com/travis-ci/travis-ci/issues/8703 - make libbls - - PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig go run build/ci.go install + - go run build/ci.go install - travis_retry go run build/ci.go test -coverage $TEST_PACKAGES addons: homebrew: packages: - - openssl - gmp # This builder only tests code linters on latest version of Go @@ -51,6 +50,7 @@ matrix: script: - go run build/ci.go lint + # Smoke test - os: linux dist: xenial go: 1.12.x @@ -70,138 +70,22 @@ matrix: - cd .. - ./build/recovery-test.sh - # This builder does the Ubuntu PPA upload - #- if: type = push - # os: linux - # dist: xenial - # go: 1.12.x - # env: - # - ubuntu-ppa - # git: - # submodules: false # avoid cloning ethereum/tests - # addons: - # apt: - # packages: - # - devscripts - # - debhelper - # - dput - # - fakeroot - # script: - # - go run build/ci.go debsrc -signer "Go Ethereum Linux Builder <geth-ci@ethereum.org>" -upload ppa:ethereum/ethereum - # This builder does the Linux GCP uploads - #- if: type = push - # os: linux - # dist: xenial - # sudo: required - # go: 1.12.x - # env: - # - gcp-linux - # git: - # submodules: false - # addons: - # apt: - # packages: - # - gcc-multilib - # script: - # - make libbls - # - go run build/ci.go install - # - go run build/ci.go archive -type tar -signer LINUX_SIGNING_KEY -upload dexon-builds - # - ./build/bls-arm64.sh - # - go run build/ci.go install -arch arm64 -cc aarch64-linux-gnu-gcc - # - go run build/ci.go archive -arch arm64 -type tar -signer LINUX_SIGNING_KEY -upload - # dexon-builds - # BLS lib does not support 32-bit platform - # - go run build/ci.go install -arch 386 - # - go run build/ci.go archive -arch 386 -type tar -signer LINUX_SIGNING_KEY -upload - # dexon-builds - # - sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes - # install gcc-arm-linux-gnueabi libc6-dev-armel-cross gcc-arm-linux-gnueabihf - # libc6-dev-armhf-cross gcc-aarch64-linux-gnu libc6-dev-arm64-cross - # - sudo ln -s /usr/include/asm-generic /usr/include/asm - # - GOARM=5 go run build/ci.go install -arch arm -cc arm-linux-gnueabi-gcc - # - GOARM=5 go run build/ci.go archive -arch arm -type tar -signer LINUX_SIGNING_KEY - # -upload dexon-builds - # - GOARM=6 go run build/ci.go install -arch arm -cc arm-linux-gnueabi-gcc - # - GOARM=6 go run build/ci.go archive -arch arm -type tar -signer LINUX_SIGNING_KEY - # -upload dexon-builds - # - GOARM=7 go run build/ci.go install -arch arm -cc arm-linux-gnueabihf-gcc - # - GOARM=7 go run build/ci.go archive -arch arm -type tar -signer LINUX_SIGNING_KEY - # -upload dexon-builds - #- if: type = push - # os: linux - # dist: xenial - # services: - # - docker - # go: 1.12.x - # env: - # - gcp-linux-mips - # git: - # submodules: false - # script: - # - make libbls - # - go run build/ci.go xgo --alltools -- --targets=linux/mips --ldflags '-extldflags - # "-static"' -v - # - for bin in build/bin/*-linux-mips; do mv -f "${bin}" "${bin/-linux-mips/}"; - # done - # - go run build/ci.go archive -arch mips -type tar -signer LINUX_SIGNING_KEY -upload - # dexon-builds - # - go run build/ci.go xgo --alltools -- --targets=linux/mipsle --ldflags '-extldflags - # "-static"' -v - # - for bin in build/bin/*-linux-mipsle; do mv -f "${bin}" "${bin/-linux-mipsle/}"; - # done - # - go run build/ci.go archive -arch mipsle -type tar -signer LINUX_SIGNING_KEY - # -upload dexon-builds - # - go run build/ci.go xgo --alltools -- --targets=linux/mips64 --ldflags '-extldflags - # "-static"' -v - # - for bin in build/bin/*-linux-mips64; do mv -f "${bin}" "${bin/-linux-mips64/}"; - # done - # - go run build/ci.go archive -arch mips64 -type tar -signer LINUX_SIGNING_KEY - # -upload dexon-builds - # - go run build/ci.go xgo --alltools -- --targets=linux/mips64le --ldflags '-extldflags - # "-static"' -v - # - for bin in build/bin/*-linux-mips64le; do mv -f "${bin}" "${bin/-linux-mips64le/}"; - # done - # - go run build/ci.go archive -arch mips64le -type tar -signer LINUX_SIGNING_KEY - # -upload dexon-builds - #- if: type = push - # os: linux - # dist: xenial - # addons: - # apt: - # packages: - # - oracle-java8-installer - # - oracle-java8-set-default - # language: android - # android: - # components: - # - platform-tools - # - tools - # - android-15 - # - android-19 - # - android-24 - # env: - # - gcp-android - # - maven-android - # git: - # submodules: false - # before_install: - # - curl https://storage.googleapis.com/golang/go1.11.1.linux-amd64.tar.gz | tar - # -xz - # - export PATH=`pwd`/go/bin:$PATH - # - export GOROOT=`pwd`/go - # - export GOPATH=$HOME/go - # script: - # - make libbls - # - curl https://dl.google.com/android/repository/android-ndk-r17b-linux-x86_64.zip - # -o android-ndk-r17b.zip - # - unzip -q android-ndk-r17b.zip && rm android-ndk-r17b.zip - # - mv android-ndk-r17b $HOME - # - export ANDROID_NDK=$HOME/android-ndk-r17b - # - mkdir -p $GOPATH/src/github.com/dexon-foundation/dexon - # - ln -s `pwd` $GOPATH/src/github.com/dexon-foundation/dexon - # - go run build/ci.go aar -signer ANDROID_SIGNING_KEY -deploy https://oss.sonatype.org - # -upload dexon-builds + - if: type = push + os: linux + dist: xenial + sudo: required + go: 1.12.x + env: + - gcp-linux + git: + submodules: false + script: + - make libbls + - go run build/ci.go install + - go run build/ci.go archive -type tar -signer LINUX_SIGNING_KEY -upload dexon-builds + + # OSX uploads - if: type = push os: osx go: 1.12.x @@ -213,24 +97,13 @@ matrix: submodules: false script: - make libbls - - PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig go run build/ci.go install + - go run build/ci.go install -cc musl-gcc - go run build/ci.go archive -type tar -signer OSX_SIGNING_KEY -upload dexon-builds addons: homebrew: packages: - - openssl - gmp - # - gem uninstall cocoapods -a -x - # - gem install cocoapods - # - mv ~/.cocoapods/repos/master ~/.cocoapods/repos/master.bak - # - sed -i '.bak' 's/repo.join/!repo.join/g' $(dirname `gem which cocoapods`)/cocoapods/sources_manager.rb - # - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then git clone --depth=1 https://github.com/CocoaPods/Specs.git - # ~/.cocoapods/repos/master && pod setup --verbose; fi - # - xctool -version - # - xcrun simctl list - # - export CGO_CFLAGS_ALLOW='-fmodules|-fblocks|-fobjc-arc' - # - go run build/ci.go xcode -signer IOS_SIGNING_KEY -deploy trunk -upload dexon-builds - if: type = cron os: linux dist: xenial diff --git a/Dockerfile b/Dockerfile index 89bf55ecc..161d441d7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ RUN cd /dexon && build/env.sh go build -o build/bin/bootnode ./cmd/bootnode # Pull Gdex into a second stage deploy alpine container FROM alpine:latest -RUN apk add --no-cache ca-certificates curl +RUN apk add --no-cache ca-certificates curl libstdc++ gmp COPY --from=builder /dexon/build/bin/gdex /usr/local/bin/ COPY --from=builder /dexon/build/bin/bootnode /usr/local/bin/ diff --git a/Dockerfile.alltools b/Dockerfile.alltools index 1809f797d..6a55c7717 100644 --- a/Dockerfile.alltools +++ b/Dockerfile.alltools @@ -9,6 +9,8 @@ RUN cd /dexon && make clean && DOCKER=alpine make all # Pull all binaries into a second stage deploy alpine container FROM alpine:latest +RUN apk add --no-cache gmp + COPY --from=builder /dexon/build/bin/* /usr/local/bin/ EXPOSE 8545 8546 30303 30303/udp diff --git a/build/ci.go b/build/ci.go index 280dd8f8a..044a9d80d 100644 --- a/build/ci.go +++ b/build/ci.go @@ -207,8 +207,9 @@ func main() { func doInstall(cmdline []string) { var ( - arch = flag.String("arch", "", "Architecture to cross build for") - cc = flag.String("cc", "", "C compiler to cross build with") + arch = flag.String("arch", "", "Architecture to cross build for") + cc = flag.String("cc", "", "C compiler to cross build with") + static = flag.Bool("static", false, "Build static binaries") ) flag.CommandLine.Parse(cmdline) env := build.Env() @@ -235,7 +236,7 @@ func doInstall(cmdline []string) { packages = build.ExpandPackagesNoVendor(packages) if *arch == "" || *arch == runtime.GOARCH { - goinstall := goTool("install", buildFlags(env)...) + goinstall := goTool("install", buildFlags(env, *static)...) goinstall.Args = append(goinstall.Args, "-v") goinstall.Args = append(goinstall.Args, packages...) build.MustRun(goinstall) @@ -249,7 +250,7 @@ func doInstall(cmdline []string) { } } // Seems we are cross compiling, work around forbidden GOBIN - goinstall := goToolArch(*arch, *cc, "install", buildFlags(env)...) + goinstall := goToolArch(*arch, *cc, "install", buildFlags(env, *static)...) goinstall.Args = append(goinstall.Args, "-v") goinstall.Args = append(goinstall.Args, []string{"-buildmode", "archive"}...) goinstall.Args = append(goinstall.Args, packages...) @@ -263,7 +264,7 @@ func doInstall(cmdline []string) { } for name := range pkgs { if name == "main" { - gobuild := goToolArch(*arch, *cc, "build", buildFlags(env)...) + gobuild := goToolArch(*arch, *cc, "build", buildFlags(env, *static)...) gobuild.Args = append(gobuild.Args, "-v") gobuild.Args = append(gobuild.Args, []string{"-o", executablePath(cmd.Name())}...) gobuild.Args = append(gobuild.Args, "."+string(filepath.Separator)+filepath.Join("cmd", cmd.Name())) @@ -275,7 +276,7 @@ func doInstall(cmdline []string) { } } -func buildFlags(env build.Environment) (flags []string) { +func buildFlags(env build.Environment, static bool) (flags []string) { var ld []string if env.Commit != "" { ld = append(ld, "-X", "main.gitCommit="+env.Commit) @@ -287,6 +288,9 @@ func buildFlags(env build.Environment) (flags []string) { if len(ld) > 0 { flags = append(flags, "-ldflags", strings.Join(ld, " ")) } + if static { + flags = append(flags, "-tags", "static") + } return flags } @@ -342,7 +346,7 @@ func doTest(cmdline []string) { // Run the actual tests. // Test a single package at a time. CI builders are slow // and some tests run into timeouts under load. - gotest := goTool("test", buildFlags(env)...) + gotest := goTool("test", buildFlags(env, false)...) gotest.Args = append(gotest.Args, "-p", "1", "-timeout", "5m") if *coverage { gotest.Args = append(gotest.Args, "-covermode=atomic", "-cover") @@ -351,7 +355,7 @@ func doTest(cmdline []string) { gotest.Args = append(gotest.Args, packages...) build.MustRun(gotest) - gotestForLegacyEvm := goTool("test", buildFlags(env)...) + gotestForLegacyEvm := goTool("test", buildFlags(env, false)...) gotestForLegacyEvm.Args = append(gotestForLegacyEvm.Args, "-p", "1", "-timeout", "10m") if *coverage { gotestForLegacyEvm.Args = append(gotestForLegacyEvm.Args, "-covermode=atomic", "-cover") @@ -1033,7 +1037,7 @@ func doXgo(cmdline []string) { build.MustRun(gogetxgo) // If all tools building is requested, build everything the builder wants - args := append(buildFlags(env), flag.Args()...) + args := append(buildFlags(env, false), flag.Args()...) if *alltools { args = append(args, []string{"--dest", GOBIN}...) diff --git a/vendor/github.com/dexon-foundation/bls/ffi/go/bls/bls.go b/vendor/github.com/dexon-foundation/bls/ffi/go/bls/bls.go index c83a4e658..56bf08039 100644 --- a/vendor/github.com/dexon-foundation/bls/ffi/go/bls/bls.go +++ b/vendor/github.com/dexon-foundation/bls/ffi/go/bls/bls.go @@ -11,7 +11,7 @@ package bls #cgo !bn256,!bn384,!bn384_256 LDFLAGS:${SRCDIR}/../../../lib/libbls384.a #cgo CFLAGS:-I${SRCDIR}/../../../include -I${SRCDIR}/../../../../mcl/include #cgo LDFLAGS:${SRCDIR}/../../../../mcl/lib/libmcl.a -lgmpxx -lgmp -#cgo linux LDFLAGS:-static +#cgo static LDFLAGS:-static typedef unsigned int (*ReadRandFunc)(void *, void *, unsigned int); int wrapReadRandCgo(void *self, void *buf, unsigned int n); #include <bls/bls.h> |