mirror of
https://github.com/irungentoo/toxcore.git
synced 2024-03-22 13:30:51 +08:00
8d29935b7a
It's pure toil until then. It's only interesting as part of the release checklist, not in regular PRs.
82 lines
2.1 KiB
Bash
Executable File
82 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -exu -o pipefail
|
|
|
|
LOCAL="${1:-}"
|
|
CHECK="${2:-}"
|
|
|
|
readarray -t FILES <<<"$(git ls-files)"
|
|
|
|
if ! tar c "${FILES[@]}" | docker build --build-arg="CHECK=$CHECK" -f other/bootstrap_daemon/docker/Dockerfile -t toxchat/bootstrap-node - 2>&1 | tee docker-build.log; then
|
|
grep -o "::error.*::[a-f0-9]* /usr/local/bin/tox-bootstrapd" docker-build.log
|
|
false
|
|
fi
|
|
docker tag toxchat/bootstrap-node:latest toxchat/bootstrap-node:"$(other/print-version)"
|
|
|
|
sudo useradd \
|
|
--home-dir /var/lib/tox-bootstrapd \
|
|
--create-home \
|
|
--system \
|
|
--shell /sbin/nologin \
|
|
--comment "Account to run Tox's DHT bootstrap daemon" \
|
|
--user-group tox-bootstrapd
|
|
sudo chmod 700 /var/lib/tox-bootstrapd
|
|
docker run -d --name tox-bootstrapd \
|
|
--user "$(id -u tox-bootstrapd):$(id -g tox-bootstrapd)" \
|
|
-v /var/lib/tox-bootstrapd/:/var/lib/tox-bootstrapd/ \
|
|
--ulimit nofile=32768:32768 \
|
|
-p 443:443 \
|
|
-p 3389:3389 \
|
|
-p 33445:33445 \
|
|
-p 33445:33445/udp \
|
|
toxchat/bootstrap-node
|
|
|
|
sudo ls -lbh /var/lib/tox-bootstrapd
|
|
|
|
if sudo [ ! -f /var/lib/tox-bootstrapd/keys ]; then
|
|
echo "Error: File /var/lib/tox-bootstrapd/keys doesn't exist"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$LOCAL" != "local" ]; then
|
|
COUNTER=0
|
|
COUNTER_END=120
|
|
while [ "$COUNTER" -lt "$COUNTER_END" ]; do
|
|
if docker logs tox-bootstrapd | grep -q "Connected to another bootstrap node successfully"; then
|
|
break
|
|
fi
|
|
sleep 1
|
|
COUNTER=$(($COUNTER + 1))
|
|
done
|
|
|
|
docker logs tox-bootstrapd
|
|
|
|
if [ "$COUNTER" = "$COUNTER_END" ]; then
|
|
echo "Error: Didn't connect to any nodes"
|
|
exit 1
|
|
fi
|
|
else
|
|
docker logs tox-bootstrapd
|
|
fi
|
|
|
|
# Wait a bit before testing if the container is still running
|
|
sleep 30
|
|
|
|
docker ps -a
|
|
|
|
if [ "$(docker inspect -f {{.State.Running}} tox-bootstrapd)" != "true" ]; then
|
|
echo "Error: Container is not running"
|
|
exit 1
|
|
fi
|
|
|
|
cat /proc/"$(pidof tox-bootstrapd)"/limits
|
|
if ! grep -P '^Max open files(\s+)32768(\s+)32768(\s+)files' /proc/"$(pidof tox-bootstrapd)"/limits; then
|
|
echo "Error: ulimit is not set to the expected value"
|
|
exit 1
|
|
fi
|
|
|
|
if ! other/fun/bootstrap_node_info.py ipv4 localhost 33445; then
|
|
echo "Error: Unable to get bootstrap node info"
|
|
exit 1
|
|
fi
|