Files
jenkins-pipelines/README.md
aleksandr.vodyanov 9046f994f1 DO-63/Waydroid_build (#1)
+ Added jobs-dsl and gitea events
Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech>
Co-committed-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech>
2023-09-25 12:01:22 +00:00

73 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Jenkins pipelines
Репозиторий с пайплайнами Avroid
---
Джобы в репозитории должны соответствовать той же ирархии каталогов что и
в **Jenkins**.
```bash
├── jobs-dsl
│ ├── folders
│ │ └── Docker.groovy
│ ├── jobs
│ │ └── Docker
│ │ └── build_docker_image.groovy
│ └── views
│ └── devops.groovy
└── pipelines
└── Docker
└── build_docker_image.groovy
```
На изображении выше показана иерархия рабочих каталогов:
Каталог **jobs-dsl** содержит в себе 3 каталога folders, jobs, views.
В каждом из них содержиться описание сущностей jenkins.
Далее идет каталог **pipelines**, в нем содержаться рабочии пайплайны.
После создания джобы **pipeline**, необходимо добавить **job dsl** в директории **jobs-dsl**
---
## jenkins-job-dsl
Репозиторий для реализации методологии **IaC** для управления задачами в Jenkins
c использованием плагина [Job DSL](https://plugins.jenkins.io/job-dsl/)
[Ссылка](https://jenkins.devos.club/plugin/job-dsl/api-viewer/index.html) на локальную документацию.
Джобы **dsl** должны называться через "_" пробелы и "-" запрещены, потому что у **job dsl** проблемы с парсингом.
---
## Триггер джобы jobs-dsl
Джоба [jobs-dsl](https://jenkins.avroid.tech/job/jobs-dsl/job/jobs-dsl/) вызывается через джобу [jobs-runner](https://jenkins.avroid.tech/job/gitea-events/job/jobs-runner/), которая
в свою очередь вызывается по **webhook** из **gitea**.
---
## WebHook job
В репозитории есть [джоба](pipelines/gitea-events/jobs-runner.groovy) которая запускает
другие джобы в зависомости от условий.
Джоба имеет следующий мапинг
```bash
Map projects = [
// при такой конфигурации будет запускаться только одна джоба с проекта 'devops/jenkins-pipeline-shared-lib'
// из мастер ветки. Можно добавлять сюда еще и другие ветки.
'devops/jenkins-pipeline-shared-lib': [
'branches': ['master'],
'jobs': ['Docs/create_shared_libs_docs']
],
// при такой конфигурации будет запускаться только одна джоба с проекта 'antiq/tsnative' на любой ветке
'antiq/tsnative': [
'branches': [],
'jobs': ['gitea-events/add-git-tags-to-jira']
]
]
```