github.com/NpoolPlatform/chain-middleware@v0.0.0-20240228100535-eb1bcf896eb9/hack/verify-build.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  set -o errexit
     4  set -o nounset
     5  set -o pipefail
     6  
     7  PLATFORMS=(
     8      linux/amd64
     9      windows/amd64
    10      darwin/amd64
    11  )
    12  OUTPUT=./output
    13  
    14  pkg=github.com/NpoolPlatform/go-service-framework/pkg/version
    15  
    16  for PLATFORM in "${PLATFORMS[@]}"; do
    17      OS="${PLATFORM%/*}"
    18      ARCH=$(basename "$PLATFORM")
    19  
    20      if git_status=$(git status --porcelain --untracked=no 2>/dev/null) && [[ -z "${git_status}" ]]; then
    21          git_tree_state=clean
    22      fi
    23  
    24      git_branch=`git rev-parse --abbrev-ref HEAD`
    25      set +e
    26      version=`git describe --tags --abbrev=0`
    27      if [ ! $? -eq 0 ]; then
    28          version=$git_branch
    29      fi
    30      set -e
    31  
    32      compile_date=`date -u +'%Y-%m-%dT%H:%M:%SZ'`
    33      git_revision=`git rev-parse HEAD 2>/dev/null || echo unknow`
    34  
    35      service_name=$1
    36  
    37      echo "Building project for $PLATFORM -- $version $compile_date $git_revision"
    38      CGO_ENABLED=0 GOOS=${OS} GOARCH=${ARCH} go build -v -ldflags "-s -w \
    39          -X $pkg.buildDate=${compile_date} \
    40          -X $pkg.gitCommit=${git_revision} \
    41          -X $pkg.gitVersion=${version}     \
    42          -X $pkg.gitBranch=${git_branch}"  \
    43          -o "${OUTPUT}/${OS}/${ARCH}/" "$(pwd)/cmd/$service_name" \
    44          || exit 1
    45  done