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