.drone.yml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. kind: pipeline
  2. type: docker
  3. name: default
  4. steps:
  5. - name: test
  6. image: git.snas.black-burn.ch/sean/poetry-in-a-container:3.11
  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. - poetry install
  18. - poetry run pre-commit run -a
  19. - name: build-latest
  20. image: plugins/docker
  21. settings:
  22. username:
  23. from_secret: NUCNAS_GITEA_DOCKER_USERNAME
  24. password:
  25. from_secret: NUCNAS_GITEA_DOCKER_PASSWORD
  26. repo: git.snas.black-burn.ch/${DRONE_REPO_NAMESPACE,,}/${DRONE_REPO_NAME,,}
  27. registry: git.snas.black-burn.ch
  28. volumes:
  29. - name: docker_sock
  30. path: /var/run/docker.sock
  31. when:
  32. ref:
  33. exclude:
  34. - refs/tags/*
  35. branch:
  36. exclude:
  37. - renovate/*
  38. - name: pypi_publish
  39. image: python:3.12
  40. volumes:
  41. - name: poetry_cache
  42. path: /root/.cache/pypoetry/virtualenvs
  43. - name: pip_cache
  44. path: /root/.cache/pip/
  45. environment:
  46. USERNAME:
  47. from_secret: GITEA_REPO_USERNAME
  48. PASSWORD:
  49. from_secret: GITEA_REPO_PASSWORD
  50. commands:
  51. - pip install poetry
  52. - poetry config repositories.gitea https://git.snas.black-burn.ch/api/packages/${DRONE_REPO_NAMESPACE,,}/pypi
  53. - poetry publish --build --repository gitea --username $USERNAME --password $PASSWORD
  54. when:
  55. ref:
  56. - refs/tags/*
  57. branch:
  58. exclude:
  59. - renovate/*
  60. - name: build-release
  61. image: plugins/docker
  62. settings:
  63. username:
  64. from_secret: NUCNAS_GITEA_DOCKER_USERNAME
  65. password:
  66. from_secret: NUCNAS_GITEA_DOCKER_PASSWORD
  67. repo: git.snas.black-burn.ch/${DRONE_REPO_NAMESPACE,,}/${DRONE_REPO_NAME,,}
  68. registry: git.snas.black-burn.ch
  69. auto_tag: true
  70. volumes:
  71. - name: docker_sock
  72. path: /var/run/docker.sock
  73. when:
  74. ref:
  75. - refs/tags/*
  76. branch:
  77. exclude:
  78. - renovate/*
  79. - name: semantic-release
  80. image: git.snas.black-burn.ch/sean/semantic-release-in-a-container:1
  81. environment:
  82. GITEA_URL:
  83. from_secret: GITEA_URL
  84. GITEA_TOKEN:
  85. from_secret: GITEA_SEMANTIC_RELEASE_TOKEN
  86. commands:
  87. - semantic-release
  88. when:
  89. branch:
  90. - "*.*.x"
  91. - main
  92. - master
  93. - next
  94. - next-major
  95. - beta
  96. - alpha
  97. - name: discord notification
  98. image: appleboy/drone-discord
  99. when:
  100. status:
  101. - failure
  102. - success
  103. settings:
  104. username: drone-ci
  105. webhook_id:
  106. from_secret: DISCORD_WEBHOOK_ID
  107. webhook_token:
  108. from_secret: DISCORD_WEBHOOK_TOKEN
  109. message: >
  110. {{#success build.status}}
  111. :green_square: {{repo.name}} #{{build.number}}
  112. {{commit.branch}} / {{truncate commit.sha 8}} / {{commit.author}}
  113. Build succeeded!
  114. {{else}}
  115. :red_square: {{repo.name}} #{{build.number}}
  116. {{commit.branch}} / {{truncate commit.sha 8}} / {{commit.author}}
  117. Build failed!
  118. {{/success}}
  119. volumes:
  120. - name: docker_sock
  121. host:
  122. path: /var/run/docker.sock
  123. - name: poetry_cache
  124. host:
  125. path: /tmp-drone/cache/poetry
  126. - name: pip_cache
  127. host:
  128. path: /tmp-drone/cache/pip
  129. - name: poetry_bin
  130. host:
  131. path: /tmp-drone/cache/poetry_bin
  132. - name: pre_commit_environments
  133. host:
  134. path: /tmp-drone/cache/pre_commit_environments