Rustam Tagaev c4d5987382 [DO-1239] add_backend_ci (!48)
добавил pipeline для сборки cloud-messenger-backend-api

Co-authored-by: Rustam Tagaev <rustam.tagaev@avroid.tech>
Reviewed-on: https://git.avroid.tech/DevOps/jenkins-pipelines/pulls/48
Reviewed-by: Denis Patrakeev <denis.patrakeev@avroid.team>
Co-authored-by: Rustam Tagaev <rustam.tagaev@avroid.team>
Co-committed-by: Rustam Tagaev <rustam.tagaev@avroid.team>
2024-11-15 13:28:45 +03:00
2024-11-15 13:28:45 +03:00
2024-11-15 13:28:45 +03:00
2023-12-18 17:01:12 +03:00
2024-11-15 13:28:45 +03:00

Jenkins pipelines

Репозиторий с пайплайнами Avroid


Джобы в репозитории должны соответствовать той же ирархии каталогов что и в Jenkins.

├── 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
Ссылка на локальную документацию.

Джобы dsl должны называться через "_" пробелы и "-" запрещены, потому что у job dsl проблемы с парсингом.


Триггер джобы jobs-dsl

Джоба jobs-dsl вызывается через джобу jobs-runner, которая в свою очередь вызывается по webhook из gitea.


WebHook job

В репозитории есть джоба которая запускает другие джобы в зависомости от условий.

Джоба имеет следующий мапинг

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']
    ]
]
Description
No description provided
Readme 186 KiB
Languages
Groovy 100%