Skip to content

Commit

Permalink
use ldflags in local docker build
Browse files Browse the repository at this point in the history
  • Loading branch information
Hilary Holz committed Aug 15, 2019
1 parent 522776c commit 30ba2c8
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 4 deletions.
1 change: 1 addition & 0 deletions Dockerfile.build
Expand Up @@ -8,4 +8,5 @@ RUN apk add --update \
git \
make \
g++ \
coreutils \
libc6-compat
6 changes: 2 additions & 4 deletions Makefile
Expand Up @@ -40,17 +40,15 @@ endif
_build:
@echo "=> building doctl via go build"
@echo ""
@mkdir -p builds
@cd cmd/doctl && env GOOS=$(GOOS) GOARCH=$(GOARCH) GOFLAGS=-mod=vendor \
go build -o $(OUT_D)/doctl_$(GOOS)_$(GOARCH)
@OUT_D=${OUT_D} GOOS=${GOOS} GOARCH=${GOARCH} scripts/_build.sh
@echo "built $(OUT_D)/doctl_$(GOOS)_$(GOARCH)"

.PHONY: native
native: _build
@echo "==> build local version"
@echo ""
@mv $(OUT_D)/doctl_$(GOOS)_$(GOARCH) $(OUT_D)/doctl
@echo "built $(OUT_D)/doctl"
@echo "installed as $(OUT_D)/doctl"

.PHONY: _build_linux_amd64
_build_linux_amd64: GOOS = linux
Expand Down
28 changes: 28 additions & 0 deletions scripts/_build.sh
@@ -0,0 +1,28 @@
#!/usr/bin/env bash

set -euo pipefail

base="-X github.com/digitalocean/doctl."
build="$("$DIR"/scripts/version.sh -c)"
ldflags="${base}Build=${build}"

version="$("$DIR"/scripts/version.sh -s)"
major="$(echo "$version" | cut -d . -f1)"
ldflags="${ldflags} ${base}Major=${major}"

minor="$(echo "$version" | cut -d . -f2)"
ldflags="${ldflags} ${base}Minor=${minor}"

patch="$(echo "$version" | cut -d . -f3)"
ldflags="${ldflags} ${base}Patch=${patch}"

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/../"
OUT_D=${OUT_D:-${DIR}/builds}
mkdir -p "$OUT_D"

(
export GOOS=${GOOS:-linux}
export GOARCH=${GOARCH:-amd64}
export GOFLAGS=-mod=vendor
cd cmd/doctl && go build -ldflags "$ldflags" -o "${OUT_D}/doctl_${GOOS}_${GOARCH}"
)

0 comments on commit 30ba2c8

Please sign in to comment.