Есть ли способ сохранить файлы конфигурации Hudson / Jenkins в системе управления версиями?
Я новичок в Hudson / Jenkins и задавался вопросом, есть ли способ проверить файлы конфигурации Hudson в системе управления версиями.
В идеале я хочу иметь возможность нажать какую-то кнопку в пользовательском интерфейсе, которая говорит "сохранить конфигурацию" и проверить файлы конфигурации Hudson в системе управления версиями.
10 ответов:
самый полезный ответ
есть плагин под названием SCM Sync configuration plugin.
Оригинальный Ответ
посмотреть мой ответ: на подобный вопрос. Основная идея заключается в использовании файловая система-scm-плагин для обнаружения изменений в xml-файлах. Ваша вторая часть будет фиксировать изменения в SVN.
EDIT: если вы найдете способ определить пользователя изменения, дайте нам знать.
изменить 2011-01-10 между тем есть новый плагин: SCM Sync configuration plugin. В настоящее время он работает только с subversion и git, но планируется поддержка большего количества репозиториев. Я использую его с версии 0.0.3, и он работал хорошо до сих пор.
обратите внимание, что у Vogella есть недавний (январь 2014 года, по сравнению с вопросом OP в январе 2010 года) и другой подход к этому.
Считайте, что SCM Sync configuration plugin вызывает большое совершает.
Таким образом, вместо того, чтобы полагаться на плагин и автоматизированный процесс, он управляет той же функцией вручную:хранение информации о работе Дженкинса в Git
я нашел сумме коммиты немного подавляющие, поэтому я решил контролировать коммиты вручную и сохранять только информацию о задании, а не конфигурацию Дженкинса.
Для этого перейдите в каталог заданий Jenkins (Ubuntu:/var/lib/jenkins/jobs
) и выполнить "git init
команда".Я создал следующее
.gitignore
файл для хранения только информации о заданиях Git:builds/ workspace/ lastStable lastSuccessful nextBuildNumber modules/ *.log
теперь вы можете добавлять и фиксировать изменения по своему желанию.
А если добавить еще один удаленный в репозиторий Git вы можете перенести свою конфигурацию на другой сервер.Альберто на самом деле, рекомендую добавить также (в
$JENKINS_HOME
):
- собственная конфигурация Дженкинса (
config.xml
),- конфигурации плагинов Дженкинса (
hudson*.xml
) и- конфигурации пользователей (
users/*/config.xml
)
чтобы вручную управлять конфигурацией с помощью Git, выполните следующие действия .файл gitignore может быть полезен.
# Miscellaneous Hudson litter *.log *.tmp *.old *.bak *.jar *.json # Generated Hudson state /.owner /secret.key /queue.xml /fingerprints/ /shelvedProjects/ /updates/ # Tools that Hudson manages /tools/ # Extracted plugins /plugins/*/ # Job state builds/ workspace/ lastStable lastSuccessful nextBuildNumber
см.https://gist.github.com/780105 и http://bit.ly/i58rg2 для более подробной информации.
есть новый SCM Sync Configuration plug-in что делает именно то, что вы ищете.
конфигурация синхронизации SCM плагин Hudson направлено на 2 основные особенности :
- продолжайте синхронизировать свою конфигурацию.xml (и другие ресурсы) файлы hudson с a SCM репозиторий
- отслеживать изменения (и автор), сделанные на каждом файле с фиксацией сообщений
Я на самом деле еще не пробовал, но это выглядит многообещающе.
Я предпочитаю исключить все, что находится в домашней папке Дженкинса за исключением файлы конфигурации, которые вы действительно хотите иметь в своем VCS. Вот это
.gitignore
файл, который я использую:* !.gitignore !/jobs/*/*.xml !/*.xml !/users/*/config.xml !*/
это игнорирует все (
*
) за исключением (!
).gitignore
сам, задания / проекты, плагин и другие важные и пользовательские файлы конфигурации.также стоит рассмотреть возможность включения
plugins
папка. Досадно обновленные Плагины должны быть включенный...в основном это решение упрощает будущие обновления Jenkins/Hudson, потому что новые файлы автоматически не попадают в область действия. Вы просто получите на экране то, что вы действительно хотите.
вы можете найти файлы конфигурации в Дженкинс домашняя папка (например,
/var/lib/jenkins
).чтобы сохранить их в VCS, сначала войдите в систему как Дженкинс (
sudo su - jenkins
) и создать свои учетные данные git:git config --global user.name "Jenkins" git config --global user.email "jenkins@example.com"
затем инициализируйте, добавьте и зафиксируйте основные файлы, такие как:
git init git add config.xml jobs/ .gitconfig git commit -m'Adds Jenkins config files' -a
также рассмотрите возможность создания
.gitignore
со следующими файлами, чтобы игнорировать (настроить по мере необходимости):# Git untracked files to ignore. # Site-wide configuration files. *.xml # Except root configuration. !config.xml # Cache. .cache/ # Fingerprint records. fingerprints/ # Working directories. workspace/ # Secret files. secrets/ secret.* *.enc *.key users/ id_rsa # Plugins. plugins/ # State files. *.state # Job state files. builds/ lastStable lastSuccessful nextBuildNumber # Updates. updates/ # Hidden files. .* # Except git config files. !.git* !.ssh/ # User content. userContent/ # Log files. logs/ *.log # Miscellaneous litter *.tmp *.old *.bak *.jar *.json *.lastExecVersion
затем добавить это:
git add .gitignore
.когда закончите, вы можете добавьте файлы конфигурации задания, например
shopt -s globstar git add **/config.xml git commit -m'Added job config files' -a
наконец, добавьте и зафиксируйте любые другие файлы, если это необходимо, а затем переместите его в удаленный репозиторий, где вы хотите сохранить файлы конфигурации.
когда файлы Дженкинса обновляются, вам нужно перезагрузить их (Обновить конфигурацию с диска) либо
reload-configuration
от Дженкинса кли.
ответ от Марка (https://stackoverflow.com/a/4066654/142207) должен работать для SVN и Git (хотя конфигурация Git не работала для меня).
но если вам это нужно для работы с Mercurial repo, создайте задание со следующим скриптом:
hg remove -A || true hg add ../../config.xml hg add ../../*/config.xml if [ ! -z "`hg status -admrn`" ]; then hg commit -m "Scheduled commit" -u fill_in_the@blank.com hg push fi
Я написал плагин это позволяет проверить ваши инструкции Дженкинса в системе управления версиями. Просто добавьте
.jenkins.yml
файл с содержимым:script: - make - make test
и Дженкинс сделает это:
а точнее
.gitignore
, вдохновленный ответом от Непа:* !.gitignore !/jobs/ !/jobs/*/ /jobs/*/* !/jobs/*/config.xml !/users/ !/users/*/ /users/*/* !/users/*/config.xml !/*.xml
он игнорирует все, кроме
.xml
config и . (разница в Непа ' s.gitignore
это не "unignore" все каталоги верхнего уровня (!*/
) какlogs/
,cache/
и т. д.)
Я полностью проверил Хадсон, вы можете использовать это в качестве отправной точки https://github.com/morkeleb/continuous-delivery-with-hudson
есть преимущества, чтобы держать весь Хадсон в git. Все изменения конфигурации регистрируются, и вы можете проверить testup довольно легко на одной машине, а затем обновить другую машину(ы) с помощью git pull.
мы использовали это в качестве шаблона для нашей установки непрерывной доставки hudson на работа.
с уважением Мортен