56 lines
2 KiB
Bash
Executable file
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
|