Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Конвертирование Jenkins Jobs из xml в yaml формат.
- На текущий момент какого-либо инструмента для конвертирования не существует.
- Сперва надо установить JenkinsJobBuilder:
- 1) apt-get install libyaml-dev libpython2.7-dev
- 2) pip install jenkins-job-builder
- Затем стоит скопировать jenking-job-builder с git для примеров и поиска нужных команд:
- 3) git clone git://git.openstack.org/openstack-infra/jenkins-job-builder
- Проверить, что все необходимые компоненты установлены:
- 4) jenkins-jobs test jenkins-job-builder/tests/yamlparser/fixtures/templates002.yaml
- Дальше в web интерфейсе Jenkins открывается raw xml нужного проекта (Job->JobConfigHistory->Last XML (Raw))
- Пользуясь официальной документацией (http://docs.openstack.org/infra/jenkins-job-builder/), grep по имени параметра в XML по всем файлам скачанного репозитория jenkins-job-builder и божьей помощью, составляется name_of_job.yaml.
- Чтобы включить shell код, можно воспользоваться включением стороннего файла:
- builders:
- - shell:
- !include-raw: cgmos-build-deb-openstack-maintenance.sh
- Шаблон файла:
- - job:
- name: some_name
- logrotate:
- daysToKeep: -1
- numToKeep: -1
- parameters:
- - string:
- name: URL
- default: 'ssh://openstack-ci-jenkins@gerrit.mirantis.com:29418/'
- description: "some text \"with\" exceptions \n for example"
- - choice:
- name: NAME
- choices:
- - choice1
- - choice2
- description: "Bla-bla-bla"
- - bool:
- name: SOME_NAME
- default: true
- description: "some text"
- - node:
- name: 'where_build'
- allowed-slaves:
- - cz5163.bud.mirantis.net
- - cz5420.bud.mirantis.net
- default-slaves:
- - cz5163.bud.mirantis.net
- - cz5420.bud.mirantis.net
- description: 'Prefer, to run on CZ'
- properties:
- - heavy-job:
- weight: 2
- - throttle:
- max-per-node: 1
- option: project
- concurrent: true
- node: cgmos
- scm:
- - git:
- url: ${CGMOS_SUPERREPO}
- branches:
- - ${SUPER_REPO_TAG}
- auth-token: 'OSCI'
- triggers:
- - gerrit:
- server-name: gerrit.mirantis.com-old
- trigger-for-unreviewed-patches: true
- trigger-on:
- - ref-updated-event
- - patchset-created-event
- - draft-published-event
- projects:
- - project-compare-type: 'PLAIN' #'ANT'=Path
- project-pattern: 'openstack/fuel-web'
- branches:
- - branch-compare-type: 'REG_EXP'
- branch-pattern: 'cgmos/release/15B*'
- wrappers:
- - ansicolor:
- colormap: xterm
- - timeout:
- fail: true
- write-description: true
- type: absolute
- timeout: 120
- - ssh-agent-credentials:
- users:
- - 'b4491992-1d62-4ede-a590-c8135c86455a'
- builders:
- - shell:
- !include-raw: cgmos_custom_5_1_1_all_15B_7_7.sh
- publishers:
- - archive:
- artifacts: 'cgmos/openstack/fuel-main/artifacts/*txt'
- - description-setter:
- description: '$COMMENT on ${NODE_NAME}'
- - junit:
- results: '**/nosetests.xml,**/nailgun.xml'
- - email:
- recipients: 'dkalashnik@mirantis.com'
- notify-every-unstable-build: true
- После создания job_name.yaml файла и job_name.sh необходимо проверить их:
- 5) jenkins-jobs test job_name.yaml
- Не должно быть ошибок и на экране должен появится xml вывод
- Для отправки джобы на сервер необходимо настроить конфигурационный файл /etc/jenkins_jobs/jenkins_jobs.ini
- Пример работающих настроек:
- [job_builder]
- ignore_cache=True
- keep_descriptions=False
- recursive=False
- allow_duplicates=False
- [jenkins]
- user=<your_login_on_Jenkins_server>
- password=<your_password>
- url=http://jenkins-product.srt.mirantis.net:8080 #url to jenkins server
- query_plugins_info=True
- Далее отправляются созданные yaml описания на сервер:
- 6)jenkins-jobs update ~/cgmos/<name_of_job>.yaml
- Этой же командой можно обновлять уже существующие проекты.
Add Comment
Please, Sign In to add comment