2020-11-07 10:49:53 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
if [[ "${USER}" != "{{ beacon_node_builds_user }}" ]]; then
|
|
|
|
echo "Incorrect user: ${USER}" >&2
|
|
|
|
echo "Expected: {{ beacon_node_builds_user }}" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2020-11-08 23:53:16 +00:00
|
|
|
IMAGE="{{ beacon_node_builds_image_name }}"
|
|
|
|
TAG="{{ item.name }}"
|
2020-11-07 10:49:53 +00:00
|
|
|
|
|
|
|
# Build the Beacon node binaries
|
2020-11-08 23:53:16 +00:00
|
|
|
pushd repo
|
|
|
|
|
|
|
|
COMMIT_BEFORE=$(git rev-parse --short=8 HEAD)
|
2020-11-12 01:29:17 +00:00
|
|
|
# We cannot use "git pull" in here, because history may be changed upstream
|
|
|
|
git fetch
|
|
|
|
git reset --hard origin/{{ item.branch }}
|
2020-11-08 23:53:16 +00:00
|
|
|
COMMIT_AFTER=$(git rev-parse --short=8 HEAD)
|
|
|
|
|
|
|
|
if [[ "$1" == "--force" ]]; then
|
|
|
|
echo "Forcing rebuild!"
|
|
|
|
elif [[ "${COMMIT_BEFORE}" == "${COMMIT_AFTER}" ]]; then
|
|
|
|
echo "Nothing new to build."
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
|
2020-11-12 01:29:17 +00:00
|
|
|
# Lower CPU and I/O priority so it doesn't affect the running beacon node
|
|
|
|
NICE="nice -n 19 ionice -c2 -n7"
|
|
|
|
|
2020-11-20 15:44:48 +00:00
|
|
|
${NICE} make -j1 update
|
|
|
|
${NICE} make -j1 {{ item.targets | join(" ") }} \
|
|
|
|
LOG_LEVEL="TRACE" NIMFLAGS="-d:insecure -d:testnet_servers_image"
|
2020-11-08 23:53:16 +00:00
|
|
|
|
|
|
|
popd
|
2020-11-07 10:49:53 +00:00
|
|
|
|
|
|
|
# Add binary into a simple Alpine image
|
2020-11-08 23:53:16 +00:00
|
|
|
docker build -t "${IMAGE}:${COMMIT_AFTER}" --build-arg=COMMIT=${COMMIT_AFTER} .
|
|
|
|
docker tag "${IMAGE}:${COMMIT_AFTER}" "${IMAGE}:${TAG}"
|
|
|
|
docker push "${IMAGE}:${COMMIT_AFTER}"
|
|
|
|
docker push "${IMAGE}:${TAG}"
|
|
|
|
|
|
|
|
echo "SUCCESS - pushed: ${IMAGE}:${TAG}"
|