summaryrefslogtreecommitdiffstats
path: root/packaging/makeself/build-static.sh
blob: c7c5a4bcc7739a1878908c89f21733e8ec3fbdf1 (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
#!/usr/bin/env bash

# SPDX-License-Identifier: GPL-3.0-or-later

# shellcheck source=./packaging/installer/functions.sh
. "$(dirname "$0")"/../installer/functions.sh || exit 1

BUILDARCH="${1}"

set -e

platform="$("$(dirname "${0}")/uname2platform.sh" "${BUILDARCH}")"

if [ -z "${platform}" ]; then
    exit 1
fi

DOCKER_IMAGE_NAME="netdata/static-builder"

if [ "${BUILDARCH}" != "$(uname -m)" ] && [ "$(uname -m)" = 'x86_64' ] && [ -z "${SKIP_EMULATION}" ]; then
    docker run --rm --privileged multiarch/qemu-user-static --reset -p yes || exit 1
fi

if docker inspect "${DOCKER_IMAGE_NAME}" > /dev/null 2>&1; then
    img_platform="$(docker image inspect netdata/static-builder --format '{{.Os}}/{{.Architecture}}/{{.Variant}}')"
    if [ "${img_platform%'/'}" != "${platform}" ]; then
        docker image rm "${DOCKER_IMAGE_NAME}" || exit 1
    fi
fi

if ! docker inspect "${DOCKER_IMAGE_NAME}" > /dev/null 2>&1; then
    docker pull --platform "${platform}" "${DOCKER_IMAGE_NAME}"
fi

# Run the build script inside the container
if [ -t 1 ]; then
  run docker run --rm -e BUILDARCH="${BUILDARCH}" -a stdin -a stdout -a stderr -i -t -v "$(pwd)":/netdata:rw \
    "${DOCKER_IMAGE_NAME}" \
    /bin/sh /netdata/packaging/makeself/build.sh "${@}"
else
  run docker run --rm -e BUILDARCH="${BUILDARCH}" -v "$(pwd)":/netdata:rw \
    -e GITHUB_ACTIONS="${GITHUB_ACTIONS}" "${DOCKER_IMAGE_NAME}" \
    /bin/sh /netdata/packaging/makeself/build.sh "${@}"
fi