Guest User

Untitled

a guest
Apr 1st, 2016
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.88 KB | None | 0 0
  1. Конвертирование Jenkins Jobs из xml в yaml формат.
  2. На текущий момент какого-либо инструмента для конвертирования не существует.
  3. Сперва надо установить JenkinsJobBuilder:
  4. 1) apt-get install libyaml-dev libpython2.7-dev
  5. 2) pip install jenkins-job-builder
  6. Затем стоит скопировать jenking-job-builder с git для примеров и поиска нужных команд:
  7. 3) git clone git://git.openstack.org/openstack-infra/jenkins-job-builder
  8. Проверить, что все необходимые компоненты установлены:
  9. 4) jenkins-jobs test jenkins-job-builder/tests/yamlparser/fixtures/templates002.yaml
  10. Дальше в web интерфейсе Jenkins открывается raw xml нужного проекта (Job->JobConfigHistory->Last XML (Raw))
  11.  
  12. Пользуясь официальной документацией (http://docs.openstack.org/infra/jenkins-job-builder/), grep по имени параметра в XML по всем файлам скачанного репозитория jenkins-job-builder и божьей помощью, составляется name_of_job.yaml.
  13. Чтобы включить shell код, можно воспользоваться включением стороннего файла:
  14. builders:
  15. - shell:
  16. !include-raw: cgmos-build-deb-openstack-maintenance.sh
  17.  
  18. Шаблон файла:
  19. - job:
  20. name: some_name
  21. logrotate:
  22. daysToKeep: -1
  23. numToKeep: -1
  24. parameters:
  25. - string:
  26. name: URL
  27. default: 'ssh://openstack-ci-jenkins@gerrit.mirantis.com:29418/'
  28. description: "some text \"with\" exceptions \n for example"
  29. - choice:
  30. name: NAME
  31. choices:
  32. - choice1
  33. - choice2
  34. description: "Bla-bla-bla"
  35. - bool:
  36. name: SOME_NAME
  37. default: true
  38. description: "some text"
  39. - node:
  40. name: 'where_build'
  41. allowed-slaves:
  42. - cz5163.bud.mirantis.net
  43. - cz5420.bud.mirantis.net
  44. default-slaves:
  45. - cz5163.bud.mirantis.net
  46. - cz5420.bud.mirantis.net
  47. description: 'Prefer, to run on CZ'
  48. properties:
  49. - heavy-job:
  50. weight: 2
  51. - throttle:
  52. max-per-node: 1
  53. option: project
  54. concurrent: true
  55. node: cgmos
  56. scm:
  57. - git:
  58. url: ${CGMOS_SUPERREPO}
  59. branches:
  60. - ${SUPER_REPO_TAG}
  61. auth-token: 'OSCI'
  62. triggers:
  63. - gerrit:
  64. server-name: gerrit.mirantis.com-old
  65. trigger-for-unreviewed-patches: true
  66. trigger-on:
  67. - ref-updated-event
  68. - patchset-created-event
  69. - draft-published-event
  70. projects:
  71. - project-compare-type: 'PLAIN' #'ANT'=Path
  72. project-pattern: 'openstack/fuel-web'
  73. branches:
  74. - branch-compare-type: 'REG_EXP'
  75. branch-pattern: 'cgmos/release/15B*'
  76. wrappers:
  77. - ansicolor:
  78. colormap: xterm
  79. - timeout:
  80. fail: true
  81. write-description: true
  82. type: absolute
  83. timeout: 120
  84. - ssh-agent-credentials:
  85. users:
  86. - 'b4491992-1d62-4ede-a590-c8135c86455a'
  87. builders:
  88. - shell:
  89. !include-raw: cgmos_custom_5_1_1_all_15B_7_7.sh
  90. publishers:
  91. - archive:
  92. artifacts: 'cgmos/openstack/fuel-main/artifacts/*txt'
  93. - description-setter:
  94. description: '$COMMENT on ${NODE_NAME}'
  95. - junit:
  96. results: '**/nosetests.xml,**/nailgun.xml'
  97. - email:
  98. recipients: 'dkalashnik@mirantis.com'
  99. notify-every-unstable-build: true
  100.  
  101. После создания job_name.yaml файла и job_name.sh необходимо проверить их:
  102. 5) jenkins-jobs test job_name.yaml
  103. Не должно быть ошибок и на экране должен появится xml вывод
  104.  
  105. Для отправки джобы на сервер необходимо настроить конфигурационный файл /etc/jenkins_jobs/jenkins_jobs.ini
  106.  
  107. Пример работающих настроек:
  108. [job_builder]
  109. ignore_cache=True
  110. keep_descriptions=False
  111. recursive=False
  112. allow_duplicates=False
  113.  
  114. [jenkins]
  115. user=<your_login_on_Jenkins_server>
  116. password=<your_password>
  117. url=http://jenkins-product.srt.mirantis.net:8080 #url to jenkins server
  118. query_plugins_info=True
  119.  
  120. Далее отправляются созданные yaml описания на сервер:
  121. 6)jenkins-jobs update ~/cgmos/<name_of_job>.yaml
  122. Этой же командой можно обновлять уже существующие проекты.
Add Comment
Please, Sign In to add comment