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