github.com/adoriasoft/tendermint@v0.34.0-dev1.0.20200722151356-96d84601a75a/scripts/gitian-descriptors/gitian-linux.yml (about) 1 --- 2 name: "tendermint-linux" 3 enable_cache: true 4 distro: "ubuntu" 5 suites: 6 - "bionic" 7 architectures: 8 - "amd64" 9 packages: 10 - "bsdmainutils" 11 - "build-essential" 12 - "ca-certificates" 13 - "curl" 14 - "debhelper" 15 - "dpkg-dev" 16 - "devscripts" 17 - "fakeroot" 18 - "git" 19 - "golang-any" 20 - "xxd" 21 - "quilt" 22 remotes: 23 - "url": "https://github.com/tendermint/tendermint.git" 24 "dir": "tendermint" 25 files: 26 - "go1.13.3.linux-amd64.tar.gz" 27 script: | 28 set -e -o pipefail 29 30 GO_SRC_RELEASE=go1.13.3.linux-amd64 31 GO_SRC_TARBALL="${GO_SRC_RELEASE}.tar.gz" 32 # Compile go and configure the environment 33 export TAR_OPTIONS="--mtime="$REFERENCE_DATE\\\ $REFERENCE_TIME"" 34 export BUILD_DIR=`pwd` 35 tar xf "${GO_SRC_TARBALL}" 36 rm -f "${GO_SRC_TARBALL}" 37 [ -d go/ ] 38 39 export GOROOT=${BUILD_DIR}/go 40 export GOPATH=${BUILD_DIR}/gopath 41 mkdir -p ${GOPATH}/bin 42 43 export PATH_orig=${PATH} 44 export PATH=$GOPATH/bin:$GOROOT/bin:$PATH 45 46 export ARCHS='386 amd64 arm arm64' 47 export GO111MODULE=on 48 49 # Make release tarball 50 pushd tendermint 51 VERSION=$(git describe --tags | sed 's/^v//') 52 COMMIT=$(git rev-parse --short=8 HEAD) 53 DISTNAME=tendermint-${VERSION} 54 git archive --format tar.gz --prefix ${DISTNAME}/ -o ${DISTNAME}.tar.gz HEAD 55 SOURCEDIST=`pwd`/`echo tendermint-*.tar.gz` 56 popd 57 58 # Correct tar file order 59 mkdir -p temp 60 pushd temp 61 tar xf $SOURCEDIST 62 rm $SOURCEDIST 63 find tendermint-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > $SOURCEDIST 64 popd 65 66 # Prepare GOPATH and install deps 67 distsrc=${GOPATH}/src/github.com/tendermint/tendermint 68 mkdir -p ${distsrc} 69 pushd ${distsrc} 70 tar --strip-components=1 -xf $SOURCEDIST 71 go mod download 72 popd 73 74 # Configure LDFLAGS for reproducible builds 75 LDFLAGS="-extldflags=-static -buildid=${VERSION} -s -w \ 76 -X github.com/tendermint/tendermint/version.GitCommit=${COMMIT}" 77 78 # Extract release tarball and build 79 for arch in ${ARCHS}; do 80 INSTALLPATH=`pwd`/installed/${DISTNAME}-${arch} 81 mkdir -p ${INSTALLPATH} 82 83 # Build tendermint binary 84 pushd ${distsrc} 85 GOARCH=${arch} GOROOT_FINAL=${GOROOT} go build -a \ 86 -trimpath \ 87 -gcflags=all=-trimpath=${GOPATH} \ 88 -asmflags=all=-trimpath=${GOPATH} \ 89 -mod=readonly -tags "tendermint" \ 90 -ldflags="${LDFLAGS}" \ 91 -o ${INSTALLPATH}/tendermint ./cmd/tendermint/ 92 93 popd # ${distsrc} 94 95 pushd ${INSTALLPATH} 96 find -type f | sort | tar \ 97 --no-recursion --mode='u+rw,go+r-w,a+X' \ 98 --numeric-owner --sort=name \ 99 --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-linux-${arch}.tar.gz 100 popd # installed 101 done 102 103 rm -rf ${distsrc} 104 105 mkdir -p $OUTDIR/src 106 mv $SOURCEDIST $OUTDIR/src