36 lines
990 B
YAML
36 lines
990 B
YAML
name: Test & Deploy
|
|
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: linux
|
|
steps:
|
|
- name: Run test suite
|
|
run: |
|
|
REPO=$(git -C /root/tipibot remote get-url origin)
|
|
rm -rf /tmp/tipibot-ci
|
|
git clone --quiet "$REPO" /tmp/tipibot-ci
|
|
cd /tmp/tipibot-ci
|
|
git checkout --quiet ${{ github.sha }}
|
|
python3 -m venv .venv
|
|
.venv/bin/pip install -q -r requirements-dev.txt
|
|
.venv/bin/python -m pytest tests/ -q
|
|
|
|
deploy:
|
|
runs-on: linux
|
|
needs: test
|
|
steps:
|
|
- name: Deploy
|
|
run: |
|
|
cd /root/tipibot
|
|
git pull
|
|
source .venv/bin/activate
|
|
pip install -r requirements.txt
|
|
sudo systemctl restart tipibot_dev # dev bot first, as canary
|
|
sleep 5
|
|
systemctl is-active --quiet tipibot_dev # dev crashed on startup -> abort
|
|
sudo systemctl restart tipibot # eco bot only if dev survived
|