summaryrefslogtreecommitdiff
path: root/scripts/build.sh
blob: 7413619f1fba5937f0463f0b69d340a03d181581 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env bash

set -euo pipefail

. $(dirname $0)/commons.sh

skipTest=0
debugBuild=0
doInstall=0

while [[ "$#" -gt 0 ]]; do
  case $1 in
  -s | --SkipTests)
    skipTest=1
    ;;
  -d | --DebugBuild)
    debugBuild=1
    ;;
  -i | --Install)
    doInstall=1
    ;;
  esac
  shift
done

function clean() {
  info "Cleaning $BUILD_DIR"
  rm -rf "$BUILD_DIR"
  mkdir -p "$BUILD_DIR"
}

function compile() {
  NAME=$(cat "$PROVIDER_NAME_FILE")
  VERSION=$(cat "$PROVIDER_VERSION_FILE")

  BUILD_ARTIFACT="terraform-provider-${NAME}_v${VERSION}"

  info "Attempting to build $BUILD_ARTIFACT"
  (
    cd "$SOURCE_DIR"
    go mod download
    if [ $debugBuild -eq 1 ]; then
      info "Using debug build settings"
      go build -o "$BUILD_DIR/$BUILD_ARTIFACT" -gcflags=all="-N -l"
    else
      go build -o "$BUILD_DIR/$BUILD_ARTIFACT"
    fi
  )
}

function clean_and_build() {
  clean
  if [ $skipTest -ne 1 ]; then
    $(dirname $0)/unittest.sh
  fi
  compile $debugBuild
  info "Build finished successfully"
}

clean_and_build

if [ $doInstall -eq 1 ]; then
  $(dirname $0)/local-install.sh
fi