.drone.yml 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. ---
  2. ################
  3. # Build & Test #
  4. ################
  5. kind: pipeline
  6. name: run_tests
  7. steps:
  8. # Run tests against Python/Flask engine backend (with pytest)
  9. - name: pytest with coverage
  10. image: python:3.11.1
  11. commands:
  12. # Install dependencies
  13. - cp vrobbler.conf.test vrobbler.conf
  14. - pip install poetry
  15. - poetry install
  16. # Start with a fresh database (which is already running as a service from Drone)
  17. - poetry run pytest --cov-report term:skip-covered --cov=vrobbler tests
  18. environment:
  19. VROBBLER_DATABASE_URL: sqlite:///test.db
  20. volumes:
  21. # Mount pip cache from host
  22. - name: pip_cache
  23. path: /root/.cache/pip
  24. - name: deploy
  25. image: appleboy/drone-ssh
  26. settings:
  27. host:
  28. - vrobbler.service
  29. username: root
  30. ssh_key:
  31. from_secret: ssh_key
  32. command_timeout: 2m
  33. script:
  34. - pip uninstall -y vrobbler
  35. - pip install git+https://code.unbl.ink/secstate/vrobbler.git@main
  36. - vrobbler migrate
  37. - vrobbler collectstatic --noinput
  38. - immortalctl restart celery && immortalctl restart vrobbler
  39. - curl -d "Deploy successful!" -H "Title#58; Vrobbler CI process complete" -H "Priority#58; high" -H "Tags#58; success,cd" https://ntfy.unbl.ink/drone
  40. when:
  41. branch:
  42. - main
  43. volumes:
  44. - name: docker
  45. host:
  46. path: /var/run/docker.sock
  47. - name: pip_cache
  48. host:
  49. path: /tmp/cache/drone/pip