Je suis nouveau sur Hudson / Jenkins et je me demandais s'il existe un moyen d'archiver les fichiers de configuration d'Hudson pour le contrôle de code source.
Idéalement, je veux pouvoir cliquer sur un bouton dans l'interface utilisateur qui dit «enregistrer la configuration» et faire enregistrer les fichiers de configuration Hudson dans le contrôle de code source.
version-control
hudson
jenkins
jenkins-plugins
Yuval Roth
la source
la source
Réponses:
Réponse la plus utile
Il existe un plugin appelé plugin de configuration SCM Sync .
Réponse originale
Jetez un œil à ma réponse à une question similaire. L'idée de base est d'utiliser le filesystem-scm-plugin pour détecter les modifications apportées aux fichiers xml. Votre deuxième partie consisterait à valider les modifications apportées à SVN.
MODIFIER: Si vous trouvez un moyen de déterminer l'utilisateur pour un changement, faites-le nous savoir.
EDIT 2011-01-10 En attendant, il y a un nouveau plugin: le plugin de configuration SCM Sync . Actuellement, cela ne fonctionne qu'avec subversion et git, mais le support de plus de référentiels est prévu. Je l'utilise depuis la version 0.0.3 et cela a bien fonctionné jusqu'à présent.
la source
Notez que Vogella a une approche récente (janvier 2014, par rapport à la question du PO en janvier 2010) et différente à ce sujet.
Considérez que le plugin de configuration SCM Sync peut générer beaucoup de commits.
Ainsi, au lieu de s'appuyer sur un plugin et un processus automatisé, il gère la même fonctionnalité manuellement:
Stocker les informations de Job de Jenkins dans Git
Alberto recommande en fait d'ajouter aussi (in
$JENKINS_HOME
):config.xml
),hudson*.xml
) etusers/*/config.xml
)la source
config.xml
?Pour gérer manuellement votre configuration avec Git, le fichier .gitignore suivant peut être utile.
Voir ce GitHub Gist et cet article de blog pour plus de détails.
la source
Il existe un nouveau plug-in SCM Sync Configuration qui fait exactement ce que vous recherchez.
Je n'ai pas encore essayé cela, mais cela semble prometteur.
la source
Vous pouvez trouver les fichiers de configuration dans le dossier d'accueil de Jenkins (par exemple
/var/lib/jenkins
).Pour les conserver dans VCS, connectez-vous d'abord en tant que Jenkins (
sudo su - jenkins
) et créez ses informations d'identification git:Ensuite, initialisez, ajoutez et validez les fichiers de base tels que:
envisagez également de créer
.gitignore
avec les fichiers suivants à ignorer (personnaliser selon vos besoins):Puis ajoutez:
git add .gitignore
.Une fois terminé, vous pouvez ajouter des fichiers de configuration de tâche, par exemple
Enfin, ajoutez et validez tous les autres fichiers si nécessaire, puis poussez-les vers le référentiel distant où vous souhaitez conserver les fichiers de configuration.
Lorsque les fichiers Jenkins sont mis à jour, vous devez les recharger ( Recharger la configuration à partir du disque ) ou les exécuter à
reload-configuration
partir de la CLI Jenkins.la source
*.xml
- dessus ne change pas la règle et git ignore tous les fichiers xml, y comprisconfig.xml
dujobs
répertoire,git status
ignorant alors silencieusement tout nouveau projet.La façon dont je préfère est d'exclure tout ce qui se trouve dans le dossier d'accueil de Jenkins, à l' exception des fichiers de configuration que vous voulez vraiment voir dans votre VCS. Voici le
.gitignore
fichier que j'utilise:Cela ignore tout (
*
) sauf (!
).gitignore
lui-même, les travaux / projets, le plugin et d'autres fichiers de configuration importants et utilisateur.Il convient également d'envisager d'inclure le
plugins
dossier. Des plugins mis à jour ennuyeusement devraient être inclus ...Fondamentalement, cette solution facilite les futures mises à jour de Jenkins / Hudson car les nouveaux fichiers ne sont pas automatiquement concernés. Vous obtenez juste ce que vous voulez vraiment.
la source
Un plus précis
.gitignore
, inspiré de la réponse de nepa :Il ignore tout sauf les
.xml
fichiers de configuration et.gitignore
lui - même. (la différence de NEPA est.gitignore
que ce ne est pas « unignore » tous les répertoires de niveau supérieur (!*/
) commelogs/
,cache/
, etc.)la source
La réponse de Mark ( https://stackoverflow.com/a/4066654/142207 ) devrait fonctionner pour SVN et Git (bien que la configuration Git ne fonctionne pas pour moi).
Mais si vous en avez besoin pour fonctionner avec le repo Mercurial, créez un travail avec le script suivant:
la source
J'ai écrit un plugin qui vous permet de vérifier vos instructions Jenkins dans le contrôle de code source. Ajoutez simplement un
.jenkins.yml
fichier avec le contenu:et Jenkins le fera:
la source
J'ai entièrement vérifié Hudson, vous pouvez l'utiliser comme point de départ https://github.com/morkeleb/continuous-delivery-with-hudson
Il y a des avantages à garder hudson entier dans git. Toutes les modifications de configuration sont enregistrées et vous pouvez tester le testup assez facilement sur une machine, puis mettre à jour la ou les autres machines à l'aide de git pull.
Nous l'avons utilisé comme passe-partout pour notre configuration de livraison continue Hudson au travail.
Cordialement Morten
la source