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