github.com/evdatsion/aphelion-dpos-bft@v0.32.1/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/evdatsion/aphelion-dpos-bft.git" 24 "dir": "tendermint" 25 files: 26 - "golang-debian-1.12.5-1.tar.gz" 27 script: | 28 set -e -o pipefail 29 30 GO_SRC_RELEASE=golang-debian-1.12.5-1 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_SRC_RELEASE}/" ] 38 mv "${GO_SRC_RELEASE}/" go/ 39 pushd go/ 40 QUILT_PATCHES=debian/patches quilt push -a 41 fakeroot debian/rules build RUN_TESTS=false GOCACHE=/tmp/go-cache 42 popd 43 44 export GOROOT=${BUILD_DIR}/go 45 export GOPATH=${BUILD_DIR}/gopath 46 mkdir -p ${GOPATH}/bin 47 48 export PATH_orig=${PATH} 49 export PATH=$GOPATH/bin:$GOROOT/bin:$PATH 50 51 export ARCHS='386 amd64 arm arm64' 52 export GO111MODULE=on 53 54 # Make release tarball 55 pushd tendermint 56 VERSION=$(git describe --tags | sed 's/^v//') 57 COMMIT=$(git rev-parse --short=8 HEAD) 58 DISTNAME=tendermint-${VERSION} 59 git archive --format tar.gz --prefix ${DISTNAME}/ -o ${DISTNAME}.tar.gz HEAD 60 SOURCEDIST=`pwd`/`echo tendermint-*.tar.gz` 61 popd 62 63 # Correct tar file order 64 mkdir -p temp 65 pushd temp 66 tar xf $SOURCEDIST 67 rm $SOURCEDIST 68 find tendermint-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > $SOURCEDIST 69 popd 70 71 # Prepare GOPATH and install deps 72 distsrc=${GOPATH}/src/github.com/evdatsion/aphelion-dpos-bft 73 mkdir -p ${distsrc} 74 pushd ${distsrc} 75 tar --strip-components=1 -xf $SOURCEDIST 76 go mod download 77 popd 78 79 # Configure LDFLAGS for reproducible builds 80 LDFLAGS="-extldflags=-static -buildid=${VERSION} -s -w \ 81 -X github.com/evdatsion/aphelion-dpos-bft/version.GitCommit=${COMMIT}" 82 83 # Extract release tarball and build 84 for arch in ${ARCHS}; do 85 INSTALLPATH=`pwd`/installed/${DISTNAME}-${arch} 86 mkdir -p ${INSTALLPATH} 87 88 # Build tendermint binary 89 pushd ${distsrc} 90 GOARCH=${arch} GOROOT_FINAL=${GOROOT} go build -a \ 91 -gcflags=all=-trimpath=${GOPATH} \ 92 -asmflags=all=-trimpath=${GOPATH} \ 93 -mod=readonly -tags "tendermint" \ 94 -ldflags="${LDFLAGS}" \ 95 -o ${INSTALLPATH} 96 97 popd # ${distsrc} 98 99 pushd ${INSTALLPATH} 100 find -type f | sort | tar \ 101 --no-recursion --mode='u+rw,go+r-w,a+X' \ 102 --numeric-owner --sort=name \ 103 --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-linux-${arch}.tar.gz 104 popd # installed 105 done 106 107 rm -rf ${distsrc} 108 109 mkdir -p $OUTDIR/src 110 mv $SOURCEDIST $OUTDIR/src