J'utilise Jenkins pour déclencher et gérer une série de travaux d'importation. Je veux mettre mon script d'importation dans Github, et lorsque Jenkins construit le travail, il doit (a) extraire ce script contrôlé par version de Github et (b) exécuter le script.
Le problème que je rencontre est que je ne sais pas comment référencer le nom du script à exécuter dans le travail. Je suppose que le code source est tiré dans le répertoire de l'espace de travail. Cette hypothèse est-elle correcte? (Si seulement il y avait de la documentation!)
Voici ce que j'ai fait jusqu'à présent:
- J'ai installé Jenkins (évidemment) sur mon serveur Windows (non, je n'avais pas le choix)
- J'ai créé un référentiel sur mon compte github et y ai mis mon code
- C'est public sur https://github.com/mcholl/SARS-Import/
- Vous verrez que j'ai deux scripts, roottest.py et omniture-video \ test.py. Le code est sous brevet par Apple, j'en suis sûr :)
- L'idée est que je voudrais exécuter roottest.py
- Installé le plugin Github
- Créé un travail comme suit:
- Nom du projet = "Tester l'intégration de Github"
- Projet GitHub: https://github.com/mcholl/SARS-Import.git/
- Ajouter une commande batch Windows: python roottest.py
- Exécuter manuellement le travail
Ce que j'obtiens, cependant, est un message d'erreur indiquant que le fichier ne peut pas être localisé. C'est étrange, car je suppose que le flux de travail serait de "tirer une copie locale de la source vers le répertoire ... (Job) / workspace /, puis d'exécuter la commande batch dans le contexte du répertoire de l'espace de travail.
Voici la sortie console complète:
Démarré par l'utilisateur anonyme Construction dans l'espace de travail C: \ Program Files (x86) \ Jenkins \ jobs \ Test de l'intégration Github \ workspace [espace de travail] $ cmd / c appel C: \ Windows \ TEMP \ hudson1966342425043540895.bat
C: \ Program Files (x86) \ Jenkins \ jobs \ Test de l'intégration Github \ workspace> python roottest.py python: impossible d'ouvrir le fichier 'roottest.py': [Errno 2] Aucun fichier ou répertoire de ce type
C: \ Program Files (x86) \ Jenkins \ jobs \ Testing Github Integration \ workspace> exit 2 Étape de build 'Execute Windows batch command' marquée build comme échec Terminé: ÉCHEC
Évidemment, je m'attendais à voir les résultats de ma déclaration d'impression dans la console.
Qu'est-ce que j'ai gâché? Et pourquoi mon script n'est-il pas déjà là?
Réponses:
Pour ma build (sur un hôte Linux), je fais quelque chose comme ça (comme une étape de build dans Jenkins) pour exécuter un script de build à partir de l'espace de travail fraîchement extrait:
Exécuter la commande shell:
Je suppose que cela fonctionnerait de la même manière sous Windows, sauf bien sûr que vous utiliseriez \ plutôt que / et vous utilisez python plutôt que sh pour exécuter votre script.
la source
Vous pouvez écrire deux lignes dans votre build:
la source
Vous pouvez stocker un script dans Git, par exemple test.sh:
Ensuite, dans l'entrée "Execute shell", placez l'importation de ce script et appelez "_test_func":
Résultat:
la source