build-static.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env bash
  2. # SPDX-License-Identifier: GPL-3.0-or-later
  3. # shellcheck source=./packaging/installer/functions.sh
  4. . "$(dirname "$0")"/../installer/functions.sh || exit 1
  5. BUILDARCH="${1}"
  6. set -e
  7. platform="$("$(dirname "${0}")/uname2platform.sh" "${BUILDARCH}")"
  8. if [ -z "${platform}" ]; then
  9. exit 1
  10. fi
  11. DOCKER_IMAGE_NAME="netdata/static-builder"
  12. if [ "${BUILDARCH}" != "$(uname -m)" ] && [ "$(uname -m)" = 'x86_64' ] && [ -z "${SKIP_EMULATION}" ]; then
  13. docker run --rm --privileged multiarch/qemu-user-static --reset -p yes || exit 1
  14. fi
  15. if docker inspect "${DOCKER_IMAGE_NAME}" > /dev/null 2>&1; then
  16. img_platform="$(docker image inspect netdata/static-builder --format '{{.Os}}/{{.Architecture}}/{{.Variant}}')"
  17. if [ "${img_platform%'/'}" != "${platform}" ]; then
  18. docker image rm "${DOCKER_IMAGE_NAME}" || exit 1
  19. fi
  20. fi
  21. if ! docker inspect "${DOCKER_IMAGE_NAME}" > /dev/null 2>&1; then
  22. docker pull --platform "${platform}" "${DOCKER_IMAGE_NAME}"
  23. fi
  24. # Run the build script inside the container
  25. if [ -t 1 ]; then
  26. run docker run --rm -e BUILDARCH="${BUILDARCH}" -a stdin -a stdout -a stderr -i -t -v "$(pwd)":/netdata:rw \
  27. "${DOCKER_IMAGE_NAME}" \
  28. /bin/sh /netdata/packaging/makeself/build.sh "${@}"
  29. else
  30. run docker run --rm -e BUILDARCH="${BUILDARCH}" -v "$(pwd)":/netdata:rw \
  31. -e GITHUB_ACTIONS="${GITHUB_ACTIONS}" "${DOCKER_IMAGE_NAME}" \
  32. /bin/sh /netdata/packaging/makeself/build.sh "${@}"
  33. fi