--- ################ # Build & Test # ################ kind: pipeline name: build & deploy steps: # Run tests against Python/Flask engine backend (with pytest) - name: pytest with coverage image: python:3.11.1 commands: # Install dependencies - cp vrobbler.conf.test vrobbler.conf - pip install poetry - poetry install --with test # Start with a fresh database (which is already running as a service from Drone) - poetry run pytest -n 5 --cov-report term:skip-covered --cov=vrobbler tests environment: VROBBLER_DATABASE_URL: sqlite:///test.db volumes: # Mount pip cache from host - name: pip_cache path: /root/.cache/pip - name: deploy image: appleboy/drone-ssh settings: host: - vrobbler.service username: root ssh_key: from_secret: unbl_ink_key command_timeout: 2m script: - pip uninstall -y vrobbler - pip install git+https://code.unbl.ink/secstate/vrobbler.git@main - vrobbler migrate - vrobbler collectstatic --noinput - immortalctl restart celery && immortalctl restart vrobbler when: branch: - main - name: build success notification image: parrazam/drone-ntfy:0.3-linux-amd64 when: status: [success] settings: url: https://ntfy.unbl.ink topic: drone priority: low tags: - failure - vrobbler - name: build failure notification image: parrazam/drone-ntfy:0.3-linux-amd64 when: status: [failure] settings: url: https://ntfy.unbl.ink topic: drone priority: high tags: - success - vrobbler volumes: - name: docker host: path: /var/run/docker.sock - name: pip_cache host: path: /tmp/cache/drone/pip