File size: 1,938 Bytes
b110593
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/usr/bin/env bash

set -eou pipefail

BUILD_ARTIFACTS_DIR="build_artifacts"
GIT_HASH=$(git rev-parse --short HEAD)
VERSION="v$(jq -r '.info.version' openapi-specs/schema.json)"

function main() {
  cd ./cmd/weaviate-server

  if [ -d $BUILD_ARTIFACTS_DIR ]; then
    rm -fr $BUILD_ARTIFACTS_DIR
  fi

  build_binary_arm64
  build_binary_amd64

  echo_purp_bold "${VERSION} artifacts available here: $(pwd)/${BUILD_ARTIFACTS_DIR}"
}

function echo_green() {
  green='\033[0;32m'
  nc='\033[0m'
  echo -e "${green}${*}${nc}"
}

function echo_purp_bold() {
    purp='\033[1;35m'
    nc='\033[0m'
    echo -e "${purp}${*}${nc}"
}

function step_complete() {
    echo_green "==> Done!"
}

function build_binary_arm64() {
  build_binary "arm64"
}

function build_binary_amd64() {
  build_binary "amd64"
}

function build_binary() {
  arch=$1
  arch_dir="${BUILD_ARTIFACTS_DIR}/${arch}"

  echo_green "Building linux/${arch} binary..."
  GOOS=linux GOARCH=$arch go build -o $BUILD_ARTIFACTS_DIR/$arch/weaviate -ldflags "-w -extldflags \"-static\" -X github.com/weaviate/weaviate/usecases/config.GitHash='${GIT_HASH}'"
  step_complete

  cd $arch_dir

  echo_green "Copy README.md and LICENSE file..."
  cp ../../../../README.md .
  cp ../../../../LICENSE .

  echo_green "Packing linux/${arch} distribution..."
  LINUX_DIST="weaviate-${VERSION}-linux-${arch}.tar.gz"
  tar cvfz "$LINUX_DIST" weaviate LICENSE README.md
  step_complete

  echo_green "Calculating linux/${arch} checksums..."
  shasum -a 256 "$LINUX_DIST" | cut -d ' ' -f 1 > "${LINUX_DIST}.sha256"
  md5 "$LINUX_DIST" | cut -d ' ' -f 4 > "${LINUX_DIST}.md5"
  step_complete

  echo_green "Move linux/${arch} artifacts to ${BUILD_ARTIFACTS_DIR} directory..."
  mv $LINUX_DIST* ../
  step_complete

  echo_green "Clean up ${arch} directory"
  cd ../..
  rm -fr $arch_dir
  step_complete
}

main "$@"