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.
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.
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).
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).
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 .
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:
cp post-commit.tmpl post-commit
chmod 777 post-commit
chown -R www-data:www-data post-commit
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