Skip to content

dopos/dcape-app-woodpecker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dcape-app-woodpecker

Приложение ядра dcape для задач CI/CD.

GitHub Release GitHub code size in bytes GitHub license

Роль в dcape Сервис Docker images
cicd Woodpecker CI server, agent

Назначение

Деплой приложений при получении webhook от VCS.

Как это работает

  • Приложения (собственные исходные тексты или файлы конфигурации стороннего ПО) размещаются в репозитории на github.com или аналогичном сервисе управления git-репозиториями (может использоваться встроенное приложение gitea, или другой аналогичный сервис).
  • При установке CI/CD указывается адрес сервиса управления git-репозиториями
  • В интерфейсе CI/CD активируется нужный git-репозиторий
  • При пуше коммита в репозиторий, сервис управления (VCS) активирует webhook всех подключенных экземпляров CI/CD
  • Webhook CI/CD клонирует репозиторий и выполняет инструкции из .yml-файла в контексте сервиса, заданного параметром type. Этот сервис должен быть запущен вместе с CI/CD, в dcape в качестве такого сервиса используется CI/CD-runner-docker

Особенности

  • если контейнеру надо монтировать каталоги, при активации в CI/CD репозиторию надо поставить флаг Trusted (это может сделать пользователь, указанный в параметре CI/CD_ADMIN, в противном случае этому пользователю будет отправлен запрос на разрешение развертывания)
  • при установке CI/CD в dcape создается образ dcape-compose, который может быть использован для развёртывания контейнеров
  • кроме docker-compose и make, образ dcape-compose включает
    • Makefile.app для использования в директиве include файла Makefile адаптируемого приложения (чтобы не дублировать цели)
    • docker-compose.app.yml для использования в качестве основы для override в адаптируемом приложении

Переменные среды CI/CD-docker-runner

  • DCAPE_TAG - тег текущей копии dcape, значение из .env
  • DCAPE_NET - имя сети dcape, значение из .env
  • DCAPE_COMPOSE - имя образа dcape-compose для текущей копии dcape (префикс совпадает с DCAPE_TAG)
  • DCAPE_ROOT - путь к каталогу var (/opt/dcape) хостовой системы, который у выполняющего Ci/CD контейнера примонтирован по этому же пути

Пример сценария CI/CD

См сценарий CI/CD для dcape-app-nginx-sample

Причины выбора Woodpecker CI

См. Step-by-step guide to modern, secure and Open-source CI setup, 2022.


Install

Приложение разворачивается в составе dcape.

License

The MIT License (MIT), see LICENSE.

Copyright (c) 2023-2024 Aleksei Kovrizhkin lekovr+dopos@gmail.com