.drone.yml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. kind: pipeline
  2. type: docker
  3. name: default
  4. steps:
  5. - name: test
  6. image: python:3.10
  7. volumes:
  8. - name: poetry_cache
  9. path: /root/.cache/pypoetry/virtualenvs
  10. - name: pip_cache
  11. path: /root/.cache/pip/
  12. - name: poetry_bin
  13. path: /root/.local/bin
  14. - name: pre_commit_environments
  15. path: /root/.cache/pre-commit
  16. commands:
  17. - curl -sSL https://install.python-poetry.org | python3 -
  18. - export PATH="/root/.local/bin:$PATH"
  19. - poetry install
  20. - poetry run pre-commit run -a
  21. - name: build-latest
  22. image: plugins/docker
  23. settings:
  24. username:
  25. from_secret: NUCNAS_GITEA_DOCKER_USERNAME
  26. password:
  27. from_secret: NUCNAS_GITEA_DOCKER_PASSWORD
  28. repo: git.snas.black-burn.ch/${DRONE_REPO_NAMESPACE,,}/${DRONE_REPO_NAME,,}
  29. registry: git.snas.black-burn.ch
  30. volumes:
  31. - name: docker_sock
  32. path: /var/run/docker.sock
  33. when:
  34. ref:
  35. exclude:
  36. - refs/tags/*
  37. branch:
  38. exclude:
  39. - renovate/*
  40. - name: pypi_publish
  41. image: python:3.10
  42. volumes:
  43. - name: poetry_cache
  44. path: /root/.cache/pypoetry/virtualenvs
  45. - name: pip_cache
  46. path: /root/.cache/pip/
  47. environment:
  48. USERNAME:
  49. from_secret: GITEA_REPO_USERNAME
  50. PASSWORD:
  51. from_secret: GITEA_REPO_PASSWORD
  52. commands:
  53. - pip install poetry
  54. - poetry config repositories.gitea https://git.snas.black-burn.ch/api/packages/${DRONE_REPO_NAMESPACE,,}/pypi
  55. - poetry publish --build --repository gitea --username $USERNAME --password $PASSWORD
  56. when:
  57. ref:
  58. - refs/tags/*
  59. branch:
  60. exclude:
  61. - renovate/*
  62. - name: build-release
  63. image: plugins/docker
  64. settings:
  65. username:
  66. from_secret: NUCNAS_GITEA_DOCKER_USERNAME
  67. password:
  68. from_secret: NUCNAS_GITEA_DOCKER_PASSWORD
  69. repo: git.snas.black-burn.ch/${DRONE_REPO_NAMESPACE,,}/${DRONE_REPO_NAME,,}
  70. registry: git.snas.black-burn.ch
  71. auto_tag: true
  72. volumes:
  73. - name: docker_sock
  74. path: /var/run/docker.sock
  75. when:
  76. ref:
  77. - refs/tags/*
  78. branch:
  79. exclude:
  80. - renovate/*
  81. - name: discord notification
  82. image: appleboy/drone-discord
  83. when:
  84. status:
  85. - failure
  86. - success
  87. settings:
  88. username: drone-ci
  89. webhook_id:
  90. from_secret: DISCORD_WEBHOOK_ID
  91. webhook_token:
  92. from_secret: DISCORD_WEBHOOK_TOKEN
  93. message: >
  94. {{#success build.status}}
  95. :green_square: {{repo.name}} #{{build.number}}
  96. {{commit.branch}} / {{truncate commit.sha 8}} / {{commit.author}}
  97. Build succeeded!
  98. {{else}}
  99. :red_square: {{repo.name}} #{{build.number}}
  100. {{commit.branch}} / {{truncate commit.sha 8}} / {{commit.author}}
  101. Build failed!
  102. {{/success}}
  103. volumes:
  104. - name: docker_sock
  105. host:
  106. path: /var/run/docker.sock
  107. - name: pip_cache
  108. host:
  109. path: /tmp/drone/cache/pip
  110. - name: poetry_cache
  111. host:
  112. path: /tmp/drone/cache/poetry
  113. - name: poetry_bin
  114. host:
  115. path: /tmp/drone/cache/poetry_bin
  116. - name: pre_commit_environments
  117. host:
  118. path: /tmp/drone/cache/pre_commit_environments