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