Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/start

56 lines
2 KiB
Bash
Executable file

#!/usr/bin/env bash
# shellcheck source=/dev/null
[[ "$VIRTUAL_ENV" == "" ]] && source venv/bin/activate
source config/start.sh
while true; do
git fetch origin master
git reset --hard origin/master
timeout --preserve-status --signal=INT --verbose --kill-after=5s 5m pip3 install -q -r requirements.txt
rm -rf bots/matrix/assets/xtex_no_load_succ
timeout --preserve-status --signal=INT --verbose --kill-after=30s 1h python3 -m bots.matrix.bot
exitStatus=$?
[[ "$exitStatus" == "233" ]] && exitStatus=0
[[ "$exitStatus" == "234" ]] && exit
[[ "$exitStatus" == "235" ]] && exec ./start
if [[ "$exitStatus" != "0" ]]; then
echo Bot stopped unexpectedly
sleep 30s
fi
curl -sS --retry 3 "$HEALTHCHECKS_URL/$exitStatus"
echo "Auto merging upstream"
git pull --all --prune
headCommit="$(git rev-parse HEAD)"
git fetch https://github.com/Teahouse-Studios/akari-bot.git master
git -c user.email="bot-exozyme-akaribot@xtexx.eu.org" \
-c user.name="Akari Bot @ exozy.me" \
merge \
--no-edit -m "Merge upstream" \
--signoff --no-stat --no-squash \
FETCH_HEAD || true
if [[ -e ".git/MERGE_HEAD" ]]; then
echo "Failed to auto-merge"
git merge --abort
cat <<<"Auto-merge failed" >bots/matrix/assets/xtex_cache_update_log
continue
fi
if [[ "$headCommit" != "$(git rev-parse HEAD)" ]]; then
echo "Testing auto-merged code"
(
set -xe
timeout --preserve-status --signal=INT --verbose --kill-after=5s 3m pip3 install -q -r requirements.txt
touch bots/matrix/assets/xtex_no_load_succ
timeout --preserve-status --signal=INT --verbose --kill-after=2s 1m python3 -m bots.matrix.bot
git push
git log "$headCommit"..HEAD --oneline --no-decorate --shortstat >bots/matrix/assets/xtex_cache_update_log
set +xe
)
else
echo "Nothing is merged"
fi
done