123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- ---
- ################
- # 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: jail_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
|