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