web-dev-qa-db-fra.com

Jenkins CI: Comment déclencher des builds sur le commit SVN

Quels plugins et fonctionnalités de plug-in dois-je définir pour que mon travail Jenkins puisse déclencher une construction, si un code temporel est engagé dans un projet SVN?

J'ai installé à la fois le plug-in SVN standard et le plug-in de marquage SVN, mais je ne vois aucune nouvelle fonctionnalité permettant la configuration du déclencheur.

76
IAmYourFaja

Il y a deux façons d'aborder cela:

Je recommande initialement la première option, en raison de sa facilité de mise en œuvre. Une fois que vous avez mûri dans vos processus de construction, passez à la seconde.

  1. Interrogez le référentiel pour voir si des modifications ont eu lieu. Cela peut "ignorer" un commit si deux commits sont entrés dans le même intervalle d'interrogation. Description de la procédure à suivre ici , notez la quatrième capture d'écran où vous configurez sur le travail un "déclencheur de construction" basé sur l'interrogation du référentiel (avec une configuration semblable à une crontab).

  2. Configurez votre référentiel de manière à avoir un hook post-commit qui indique à Jenkins qu’une version doit démarrer. Description de la procédure à suivre ici , dans la section "hooks post-commit"

La fonctionnalité de balise SVN ne fait pas partie de la scrutation, elle fait partie de la promotion de la "tête" actuelle du code source en balise, pour créer une capture instantanée. Cela vous permet de faire référence à l’application Jenkins n ° 32 en tant que balise SVN/tags/build-32 (ou quelque chose de similaire).

84
Edwin Buck

J'ai créé un outil en utilisant Python avec une bash pour déclencher une construction Jenkins. En gros, vous devez collecter ces deux valeurs à partir de la post-validation quand une validation frappe le serveur SVN:

REPOS="$1"
REV="$2"

Ensuite, vous utilisez "svnlook dirs-modified $ 1 -r $ 2" pour obtenir le chemin qui vient d'être validé. Ensuite, à partir de là, vous pouvez vérifier le référentiel que vous voulez construire. Imaginez que vous avez des centaines de milliers de projets. Vous ne pouvez pas vérifier le référentiel entier, non?

Vous pouvez vérifier mon script de GitHub .

1
Phan Dolphy

Vous n'avez besoin que d'un plugin, le plugin Subversion.

Ensuite, simplement, allez dans Jenkins → nom_travail → section Déclencheur de construction → (i) génération de déclencheur à distance (c.-à-d. À partir de scripts) Jeton d’authentification: nom_cken

Accédez au répertoire des crochets du serveur SVN, puis lancez les commandes ci-dessous:

  1. cp post-commit.tmpl post-commit
  2. chmod 777 post-commit
  3. chown -R www-data:www-data post-commit
  4. vi post-commit

    Remarque: Toutes les lignes doivent être commentées Ajoutez la dernière ligne en dernier

Syntaxe (pour les utilisateurs de Linux):

/usr/bin/curl http://username:API_token@localhost:8081/job/job_name/build?token=Token_name

Syntaxe (pour utilisateur Windows):

C:/curl_for_win/curl http://username:API_token@localhost:8081/job/job_name/build?token=Token_name
1
Hemin Patel