En tant qu'ingénieur indépendant, je participe à un projet utilisant Jenkins, mais après avoir étudié, diffusons les connaissances en écrivant un article sur Qiita! J'ai donc décidé de l'écrire. En outre, cet article est sur le point d'être rédigé, mais sera mis à jour de temps en temps. https://www.udemy.com/course/jenkins-from-zero-to-hero/learn/lecture/19367702 Tout en apprenant de la vidéo d'udemy, j'écris tout en recherchant, donc je serais très heureux si vous pouviez signaler des erreurs.
Les personnes qui ont décidé d'utiliser Jenkins au travail mais qui ne savent pas comment l'utiliser Qu'est-ce que Jenkins? Gens utilisateur mac
Outil CI
CI signifie intégration continue, qui se traduit littéralement par intégration continue. Elle est également appelée intégration continue. Si vous avez passé l'examen d'ingénieur en informatique de base, vous n'avez peut-être vu que le service.
CircleCI, qui est devenu populaire récemment, est également l'un des outils CI. À propos, on dit que tout ce que vous pouvez faire avec Jenkins peut être fait avec CircleCI.
Cependant, de nombreuses entreprises utilisent encore Jenkins, donc je ne pense pas qu'acquérir des connaissances sur Jenkins sera un coût thunk pour le moment.
Le but des outils CI est de maintenir la vitesse de développement et la qualité du logiciel en exécutant efficacement les parties qui peuvent être automatisées à partir de Commit → Build → Test.
À propos, CD, qui apparaît souvent comme un mot apparenté, signifie déploiement continu et est un concept de CI compatible ascendant. Non seulement le commit-> build-> test, mais aussi le déploiement ultérieur de la version> est automatisé pour un développement efficace.
Jenkins vous permet d'automatiser les builds et les tests. Et lorsqu'une compilation ou un test échoue, Jenkins peut le vérifier immédiatement, ce qui peut conduire à une détection précoce des défauts et aider à améliorer la qualité du logiciel.
Il faut du temps pour apprendre Jenkins et pour créer un environnement Jenkins. Il semble que de nombreuses entreprises se tournent maintenant vers CircleCI, donc ce que vous avez appris peut être gaspillé.
Installez en utilisant Homebrew. Homebrew est un logiciel d'installation de logiciels et de gestion des logiciels installés. Si vous utilisez mac, vous l'avez probablement installé, mais si vous ne l'avez pas encore installé, tapez la commande suivante dans le terminal pour l'installer.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Entrez ensuite la commande pour installer jenkins en utilisant Homebrew sur le terminal. (Cela prendra du temps)
brew install jenkins
Une fois l'installation terminée, entrez la commande pour démarrer jenkins sur le terminal. (Parce que c'est une commande fréquemment utilisée, je l'enregistre dans clipy)
launchctl start homebrew.mxcl.jenkins
Maintenant que jenkins a démarré, ouvrez un navigateur et entrez "localhost: 8080". Puisque jenkins est un serveur http, nous y accédons avec le numéro de port 8080.
Après un certain temps, l'écran suivant apparaîtra.
J'ai mis le mot de passe dans le chemin indiqué en rouge, on m'a donc demandé de le saisir. Si vous effectuez les opérations suivantes sur le terminal, le mot de passe sera affiché.
chat Le chemin affiché en rouge
Après avoir saisi le mot de passe, l'écran suivant s'affiche.
Il vous sera demandé si vous souhaitez installer le plug-in recommandé ou sélectionner et installer le plug-in. Si vous sélectionnez la gauche, l'écran suivant apparaît et l'installation de plug-in recommandée démarre.
Lorsque l'installation est terminée, l'écran ci-dessous s'affiche. Entrez tout et appuyez sur Enregistrer et continuez en bas à droite. Souvenez-vous de ce que vous entrez car il sera utilisé pour vous connecter à jenkins.
Une fois la saisie terminée, l'écran suivant s'affiche. On vous demandera "Voulez-vous changer l'URL?", Alors changez-la comme vous le souhaitez. Je l'utilise pour étudier, donc je ne l'ai pas changé. Cliquez sur Enregistrer et Terminer.
L'écran suivant apparaîtra, alors cliquez sur commencer à utiliser jenkins.
Lorsque l'écran ci-dessous s'affiche, l'installation de jenkins est terminée.
Pendant l'installation, je pense que vous avez démarré Jenkins avec la commande suivante.
launchctl start homebrew.mxcl.jenkins
Après le démarrage, si vous n'entrez pas la commande de fin dans le terminal, il continuera à démarrer, alors entrez la commande suivante dans le terminal pour terminer. (Parce que c'est une commande fréquemment utilisée, je l'enregistre dans clipy)
launchctl stop homebrew.mxcl.jenkins
Je le terminerai quand j'aurai fini de l'utiliser.
Depuis que j'ai installé jenkins avec brew, je le désinstalle également avec brew. Entrez la commande suivante sur le terminal pour désinstaller.
brew uninstall jenkins
Cependant, avec cela seul, diverses données telles que le nom d'utilisateur et le mot de passe définis lors du démarrage de Jenkins resteront, donc lorsque vous réinstallez jenkins, vous serez connecté en utilisant ces informations. Si vous souhaitez le supprimer, vous pouvez le supprimer complètement en entrant la commande suivante sur le terminal. Il y a un répertoire de noms d'utilisateur sous le répertoire Users, et il y a un répertoire .jenkins sous celui-ci, supprimez-le avec la commande rm -rf. (Le chemin est différent pour chaque personne, veuillez donc le lire.)
cd /Users/Nom d'utilisateur/.jenkins
cd ../
rm -rf .jenkins
2020/09/02
Jenkins a le concept des emplois. Un travail ici est un groupe de procédures automatisées. Je pense que cette compréhension s'améliorera si vous essayez d'en créer un, alors créons un emploi immédiatement.
Cliquez sur Créer un nouveau travail sur l'écran ci-dessous.
Déplacé vers l'écran de création d'emploi.
Entrez un nom d'élément représentant le nom du travail. Entrez le nom de votre choix.
Entrez un nom de votre choix et choisissez Construire un projet Freestyle. C'est un petit outil ancien, donc j'ai un peu de bizarreries à travailler avec l'interface utilisateur.
[Tips]
Construire un projet freestyle vous permet de créer les jobs les plus basiques.
Tout SCM(source code manager:github ou subversion)Code source de
Vous pouvez le récupérer et créer le projet sur n'importe quel système de construction.
En outre, il peut être utilisé pour diverses automatisations arbitraires.
Je ne sais toujours pas quels sont les autres éléments, alors je les expliquerai plus tard.
Cette fois, c'est pour les tests, donc dans ce projet freestyle
"Je suis le tout premier emploi chez Jenkins"
Exécutez un script shell qui s'affiche.
Cliquez sur OK en bas à gauche pour afficher l'écran ci-dessous.
Il existe différents paramètres, mais ce que je veux faire cette fois, c'est d'afficher la chaîne de caractères à l'aide d'un script shell. Je n'utilise donc pas la plupart des paramètres.
Si vous faites défiler vers le bas, il existe un élément appelé Build, donc sélectionnez Run Shell à partir de Add Build Procedure.
Ensuite, un formulaire de saisie des commandes shell apparaîtra.
echo "Je suis le tout premier emploi chez Jenkins"
Lorsque vous avez terminé, cliquez sur Enregistrer.
Vous avez maintenant créé votre premier emploi. Cliquez ensuite sur Exécuter la génération dans le menu de gauche. Cette opération s'appelle "créer un emploi".
Lorsque j'ai créé le travail, ● </ font> # 1 </ u> a été créé dans l'historique de construction. Cela représente le résultat de la construction. Cela signifie ● </ font>, mais si c'est ● (blue) </ font>, la construction est réussie et ● ( Rouge) </ font> indique un échec de construction. Si vous annulez la construction au milieu, ce sera ● (gris) </ font>. Puisque \ # 1 est un lien, cliquez dessus.
Ensuite, vous pouvez vérifier l'heure de construction et vous pouvez vérifier le résultat de la construction de différentes manières dans le menu de gauche. Des informations détaillées au moment de la construction peuvent être trouvées dans "Sortie de la console", alors cliquez pour l'ouvrir.
Cela montre le journal lorsque le travail a été créé. La deuxième ligne à partir du bas dit "Je suis le tout premier emploi chez Jenkins". En d'autres termes, vous pouvez confirmer que le script shell que vous avez entré dans le formulaire a été exécuté avec succès.
La construction automatique réelle et le test automatique nécessitent des paramètres un peu plus compliqués, mais c'est le flux général lors de la création d'un travail.
Vous pouvez revenir en haut de la page en cliquant sur la bannière Jenkins en haut à gauche.
Vous pouvez voir que le travail a été créé et que l'affichage a changé. Le nom du travail du travail créé précédemment s'affiche. Vous pouvez voir S et W sur la gauche.
Pour S, un ● coloré s'affiche. Représente le résultat final de la génération. ● </ font> réussi ● </ font> échoue ● </ font> n'a pas été exécuté ou annulé
W peut savoir combien de ces derniers ont réussi. : ensoleillé: tous réussissent : partial_sunny: est un peu réussi : parapluie2: tout a échoué
Vous pouvez modifier le travail créé. J'ai affiché la chaîne dans le script shell, mais utilisons maintenant la date de la commande shell pour afficher la date et la commande whoami pour connaître mon nom d'utilisateur.
Sélectionnez une tâche dans la page supérieure et cliquez sur Paramètres dans la barre de menu de gauche.
Réécrivez le script shell comme suit.
Avant correction
echo "Je suis le tout premier emploi chez Jenkins"
modifié
echo "$(whoami)Monsieur Bonjour! La date et l'heure d'aujourd'hui$(date)est"
Après la réécriture, cliquez sur Enregistrer pour exécuter la compilation et essayez d'ouvrir la sortie de la console à partir du dernier résultat de compilation.
Vous pouvez confirmer que vous avez pu modifier le travail.
Si vous avez installé Jenkins sur votre mac, la tâche s'exécutera dans le répertoire suivant:
/Users/Nom d'utilisateur/.jenkins/workspace/Travail qui génère des caractères dans le shell
Si vous exécutez la commande pwd pour afficher le répertoire courant dans le script shell du travail, ce répertoire sera affiché.
Ce sera différent si vous construisez Jenkins sur Amazon Linux d'EC2 sur AWS ou Jenkins sur Linux de VirtualBox. Si vous ne savez pas, vous pouvez vérifier en créant et en construisant un script shell qui exécute pwd dans votre travail.
De plus, sur mac, la zone sous le répertoire .jenkins est un dossier caché, vous devez donc le configurer pour afficher le dossier caché lors de son affichage avec le Finder.
Si vous avez installé Jenkins sur votre Mac, les données de la tâche seront stockées dans le répertoire suivant.
/Users/Nom d'utilisateur/.jenkins/jobs/Travail qui génère des caractères dans le shell
Vous pouvez également obtenir des journaux directement à partir d'ici. Si vous jouez avec, Jenkins peut ne pas être en mesure de lire les données du travail et vous pouvez avoir un bogue, vous ne devriez donc pas jouer avec cela tant que vous ne vous y êtes pas habitué. (Histoire d'expérience)
Jusqu'à présent, il n'y avait qu'un modèle de réussite, alors j'essaierai d'échouer exprès. Sélectionnez un travail et accédez à l'écran où vous pouvez saisir le script shell à partir des paramètres.
Supprimez le "" à la fin.
Avant correction
echo "$(whoami)Monsieur Bonjour! La date et l'heure d'aujourd'hui$(date)est"
modifié
echo "$(whoami)Monsieur Bonjour! La date et l'heure d'aujourd'hui$(date)est
Cliquez sur Enregistrer, puis sur Exécuter la génération.
Vous pouvez voir que l'historique de construction est devenu rouge. Autrement dit, la construction a échoué. Dans ce cas, je sais pourquoi la construction a échoué, mais vérifions pourquoi la construction a échoué. Suivez le lien rougeâtre de l'historique de construction et cliquez sur la sortie de la console.
Vous pouvez lire les informations suivantes à partir du journal
Quelle ligne a l'erreur
/var/folders/sp/s32xwxcx69343zl_szqw02kw0000gn/T/jenkins13410237169821088770.sh: line 2: unexpected EOF while looking for matching `"'
Pourquoi l'erreur s'est produite
Build step 'Exécuter le shell' marked build as failure
Le résultat échoue
Finished: FAILURE
Si la construction échoue, vérifiez d'abord la sortie de la console pour aider à déterminer la cause.
Puisqu'il n'y a pas de "" à la fin du script shell, restaurez-le et exécutez à nouveau la construction.
Avant correction
echo "$(whoami)Monsieur Bonjour! La date et l'heure d'aujourd'hui$(date)est
modifié
echo "$(whoami)Monsieur Bonjour! La date et l'heure d'aujourd'hui$(date)est"
Maintenant, celui qui n'a pas réussi à construire réussira à nouveau.
Jusqu'à présent, j'ai écrit le script shell directement sur Jenkins, mais appelons maintenant le script shell créé.
"Mais où placez-vous le script shell?"
Jenkins a le concept d'espace de travail. Vous pouvez lire ce que vous mettez dans cet espace de travail avec Jenkins. Rassurez-vous, je vous expliquerai tout dans les étapes qui suivent.
"Pourquoi dois-je appeler un script shell?"
En vous souvenant de cette procédure, vous pourrez utiliser votre espace de travail et rendre les applications plus efficaces.
Créez immédiatement un nouvel emploi.
Nommez le travail "Job to call shell script", faites-en une construction d'un projet de style libre et cliquez sur OK.
Cliquez sur Ajouter une procédure de construction → Exécuter Shell, puis sur Enregistrer.
À ce stade, le formulaire de script shell est vide et convient.
Cliquez sur l'espace de travail. Cliquer sur celui affiché dans le menu de gauche ou celui affiché sur la droite vous amènera à la même page.
En cas de doute, veuillez sélectionner selon la théorie de Krapika.
Leorio "Pourquoi est-il à gauche dans un tel cas?
Dans ce cas, je ne suis pas à gauche, donc je ne suis pas calme. "
Krapika "Sûrement du point de vue du comportement, lorsque les gens se perdent ou choisissent une voie inconnue
Il semble qu'il y ait de nombreux cas où vous sélectionnez sans le savoir la gauche. "
Lorsque vous ouvrez l'espace de travail, vous pouvez voir que l'espace de travail n'existe pas. Cela dit une erreur, mais c'est normal.
En plaçant le script shell dans l'espace de travail, il peut être exécuté à partir de Jenkins, mais la spécification est que l'espace de travail n'est pas créé à moins qu'il ne soit construit une fois.
Exécutez donc la compilation une fois, puis rouvrez l'espace de travail.
Si vous voyez un écran comme celui ci-dessus, votre espace de travail a été créé.
Alors, où est cet espace de travail?
/Users/Nom d'utilisateur/.jenkins/workspace/Job qui appelle un script shell
C'est dedans.
J'ai essayé diverses choses, mais je n'ai pas pu mettre le fichier de script de Jenkins, alors je suis allé créer un script shell dans le chemin ci-dessus à partir du Finder. (Je ne sais pas si Jenkins peut le faire, alors je vais l'expliquer de cette façon)
Créez un fichier script.sh dans l'espace de travail ci-dessus et décrivez le contenu comme suit.
script.sh
#Affiche le type de shell que vous utilisez
echo "(Le shell que vous utilisez est "$COQUILLE ")"
#Afficher le nom
LASTNAME=$1 #Passez le nom comme premier argument
FIRSTNAME=$2 #Passez le nom de famille comme deuxième argument
NAME=$FIRSTNAME$LASTNAME #Joindre le prénom et le prénom
echo "Bonjour,$NOM"
Ce script shell génère le nom en fonction du shell que vous utilisez et des arguments.
Une fois créé, retournez à travailler avec Jenkins.
Vous pouvez également vérifier l'existence de script.sh sur Jenkins. S'il n'est pas affiché, vous pouvez le vérifier en actualisant la page. S'il n'apparaît toujours pas, il y a une erreur dans le répertoire où vous créez le script shell.
Cliquez sur Paramètres de la tâche.
Entrez ce qui suit:
sh script.sh Ryuken Yamamoto
Cela signifie que dans un shell appelé sh, le premier argument "Ryuken" et le second argument "Yamamoto" sont passés à script.sh et exécutés.
Une fois entré, cliquez sur Enregistrer, puis sur Exécuter la génération.
Si l'historique de construction est ● </ font>, il réussit. Cliquez sur le dernier historique de construction, puis sur Sortie de la console.
(Le shell que vous utilisez est "/bin/zsh ")
Bonjour, Yamamoto Ryûken M.
S'affiche, c'est réussi.
Vous venez de créer un travail qui exécute un script que vous avez placé dans votre espace de travail.
Vous pouvez terminer ce chapitre ici, mais pour vous habituer au script shell, modifions le script shell Jenkins pour créer une variable puis passons-la à script.sh.
Ouvrez les paramètres de la tâche et procédez comme suit:
Avant correction
sh script.sh Ryuken Yamamoto
modifié
FIRSTNAME=Yamamoto
LASTNAME=Ryuken
sh script.sh $LASTNAME $FIRSTNAME
※Mise en garde
FIRSTNAME=Yamamoto
LASTNAME=Ryuken
sh script.sh $LASTNAME $FIRSTNAME
,
FIRSTNAME=Yamamoto
LASTNAME=Ryuken
sh script.sh $LASTNAME $FIRSTNAME
Si vous mettez un espace après et =, la génération du travail échouera.
Cliquez sur Enregistrer pour exécuter la compilation et ouvrez le dernier historique de compilation pour voir la sortie de la console.
Le résultat est similaire.
Je l'ai beaucoup ignoré, mais pour la première fois, j'aimerais utiliser l'une des options, "paramétrer la construction".
Maintenant, dans le script shell, les variables FIRSTNAME et LASTNAME sont préparées, et les valeurs sont définies et utilisées.
Paramétrez-les pour créer. Vérifiez le paramétrage de la construction.
Sélectionnez ensuite une chaîne dans Ajouter un paramètre.
Ensuite, un champ pour entrer le nom, la valeur par défaut et la description est apparu.
Entrez FIRSTNAME pour le nom, Yamamoto pour la valeur par défaut et le nom de famille pour la description.
Vous avez maintenant paramétré une variable dans votre build. Ensuite, créez-en un autre.
Sélectionnez à nouveau la chaîne dans Ajouter un paramètre.
Entrez LASTNAME pour le nom, Ryuken pour la valeur par défaut et le nom pour la description.
Vous avez maintenant paramétré les deux variables dans votre build.
Enfin, supprimez la description inutile du script shell Jenkins et réécrivez-la comme suit.
Avant correction
FIRSTNAME=Yamamoto
LASTNAME=Ryuken
sh script.sh $LASTNAME $FIRSTNAME
modifié
sh script.sh $LASTNAME $FIRSTNAME
Maintenant, le script shell se rafraîchit. Cela seul semble être un avantage, mais ce n'est pas le seul avantage. Voici les avantages du paramétrage de la vraie construction. Cliquez sur Enregistrer.
À ce stade, vous remarquerez qu'un affichage a changé. La partie qui était autrefois une exécution de build est devenue une build paramétrée.
Cliquons dessus tout de suite.
L'exécution de la construction a commencé immédiatement lorsque j'ai cliqué sur l'exécution de la construction, mais en définissant le paramétrage de la construction, il est maintenant possible de changer la valeur de la variable avant l'exécution de la construction.
Cliquez sur Construire tel quel une fois, et une fois terminé, ouvrez la sortie de la console à partir du dernier historique de build.
La chaîne affichée est la même que dans le chapitre précédent. Revenez ensuite au projet → Construire avec des paramètres. Cette fois, je vais refaire le nom et le prénom.
Cliquez sur Build et lorsque vous avez terminé, ouvrez la sortie de la console à partir du dernier historique de build.
Vous pouvez voir que le nom affiché a changé. En définissant le paramétrage de la construction, il est désormais possible de modifier les variables à chaque fois qu'une construction est exécutée. Vous pouvez également définir des valeurs par défaut, ce qui est une fonctionnalité utile si vous devez modifier des variables à chaque fois que vous exécutez une génération.
L'utilisation des paramètres de construction est infinie. Dans ce chapitre, ce n'est pas grave si vous pouvez dire que le paramétrage de build peut être utilisé de différentes manières.
Le paramétrage de la construction peut être sélectionné ainsi que la saisie d'une chaîne. Terminez tous les paramétrages de construction une fois.
Choisissez ensuite de sélectionner des paramètres supplémentaires.
Effectuez les réglages pour que le nom et le prénom puissent être sélectionnés en fonction de l'image ci-dessous. Vous pourrez sélectionner le nom de famille parmi "Yamamoto", "Katsumata" et "Bannai". Vous pourrez créer un nom de la même manière et choisir parmi "Ryuken", "Kenta" et "Manabu".
Cliquez sur Enregistrer, puis sur Construire avec des paramètres.
J'ai pu confirmer que le nom et le prénom sont sélectionnables. Changez le nom de famille en "Bannai" et le nom en "Manabu".
cool. (Imitation d'un instructeur étranger)
Cliquez ensuite sur Build, puis sur Console Output from Latest Build History.
Il a été confirmé que les noms sélectionnés «Bannai» et «Manabu» sont affichés. En passant, Manab a le même âge que moi et a quatre mois d'intervalle.
Vous avez maintenant rendu le paramétrage de la construction sélectif.
J'avais l'habitude de montrer quel shell j'utilisais, mais comme je n'ai pas besoin de le montrer à chaque fois, j'utiliserai le paramétrage de construction pour l'afficher ou le masquer.
Dans les paramètres du travail, sélectionnez une valeur booléenne dans Ajouter un paramètre.
Le nom est SHOWSHELL, la valeur par défaut n'est pas cochée car je veux le cacher, et la description peut être vérifiée pour montrer le shell que vous utilisez. ça ira.
Cliquez sur Enregistrer.
Ensuite, réécrivez le script.sh placé dans l'espace de travail afin que le shell s'affiche si SHOWSHELL est vrai (1) et le shell ne s'affiche pas si SHOWSHELL est faux (0).
Avant correction
/Users/Nom d'utilisateur/.jenkins/workspace/Travail qui génère des caractères dans le shell/script.sh
#Affiche le type de shell que vous utilisez
echo "(Le shell que vous utilisez est "$COQUILLE ")"
#Afficher le nom
LASTNAME=$1 #Passez le nom comme premier argument
FIRSTNAME=$2 #Passez le nom de famille comme deuxième argument
NAME=$FIRSTNAME$LASTNAME #Joindre le prénom et le prénom
echo "Bonjour,$NOM"
modifié
/Users/Nom d'utilisateur/.jenkins/workspace/Travail qui génère des caractères dans le shell/script.sh
#Définition variable
LASTNAME=$1 #Passez le nom comme premier argument
FIRSTNAME=$2 #Passez le nom de famille comme deuxième argument
SHOWSHELL=$3 #Passez un drapeau au troisième argument pour savoir s'il faut sortir le shell
#Affiche le type de shell que vous utilisez
if [ "$SHOWSHELL" = "true" ]; then
echo "(Le shell que vous utilisez est "$COQUILLE ")"
fi
#Afficher le nom
NAME=$FIRSTNAME$LASTNAME #Joindre le prénom et le prénom
echo "Bonjour,$NOM"
Revenez à travailler avec Jenkins et cliquez sur Construire avec des paramètres.
Cette fois, le shell que j'utilise n'est plus affiché, il suffit donc de cliquer sur Construire pour afficher la sortie de la console à partir du dernier historique de construction.
Il a été confirmé que le type de shell qui était affiché jusqu'à présent n'est plus affiché.
Vous pouvez maintenant l'afficher ou le masquer à l'aide du paramétrage de construction.
Apportez l'application rails de GitHub et créez un travail pour les tests et l'analyse statique dans Jenkins.
Comment créer une application de rails, comment installer Homebrew, qui est un logiciel pour installer rbenv et son rbenv, qui peut facilement réécrire la version ruby, rspec utilisé dans les tests automatiques, rubocop utilisé comme outil d'analyse statique J'omettrai la méthode d'introduction. Le GitHub suivant a des applications personnelles avec rspec installé et rubocop installé, donc je vais expliquer en utilisant ceci comme exemple. https://github.com/EL93019205/stuctive.git rails utilise 5.2.3 et ruby utilise 2.5.1.
Il existe un article qui présente la procédure d'installation du plug-in, mais aucun plug-in n'est requis à l'exception de celui par défaut. ~~ Le plug-in est totalement ancien et pas très utile ~~
Créons maintenant un nouvel emploi.
Le nom du travail est rails Doit être en anglais pour plus de commodité. Cette fois, réglez-le sur "stuctive_auto_test".
Le type de travail doit être Construction de projet libre.
Cliquez sur OK lorsque vous avez terminé.
Puisqu'il existe un élément appelé gestion du code source, je vais le rendre Git. Ensuite, l'écran suivant s'affiche.
GitHub dans l'URL du référentiel Maintenant, que dois-je entrer dans l'URL du référentiel? La réponse est sur GitHub.
Cliquez sur le bouton vert Code à partir de l'URL ci-dessous (l'URL de mon référentiel d'applications personnelles), puis cliquez sur l'icône à droite de la partie où l'URL est écrite. Cette icône représente une copie. C'est un référentiel public, donc je pense que n'importe qui peut le copier et l'utiliser. https://github.com/EL93019205/stuctive
Collez ensuite "https://github.com/EL93019205/stuctive.git" dans l'URL du référentiel comme indiqué ci-dessous.
C'est le seul paramètre de contrôle du code source. Vous n'avez pas à jouer avec autre chose.
Avez-vous pensé: "Quoi? C'est tout?" Oui c'est ça.
Si vous disposez d'un paramètre sécurisé, vous devrez peut-être définir des informations d'identification, et si la branche à automatiser n'est pas maître, vous devrez peut-être modifier la branche à construire, mais mon application personnelle se trouve dans le référentiel public. Et comme la branche que vous souhaitez faire des tests automatisés est maître, vous n'avez pas à vous en soucier.
Ce paramètre clonera l'application rails dans votre espace de travail.
Cliquez sur Enregistrer une fois.
Ouvrez l'espace de travail.
Vous pouvez voir que l'espace de travail n'existe pas.
Comme je l'ai écrit ci-dessus, l'espace de travail ne sera pas créé à moins que la construction ne soit exécutée une fois. Cliquez donc sur Run Build.
Vous pouvez voir que l'historique de construction est devenu bleu.
Ouvrez à nouveau l'espace de travail.
C'est comme suit. Si vous avez déjà écrit une application rails, vous connaissez probablement tous les fichiers.
Ces données sont exactement les mêmes que les données sur GitHub ci-dessous. https://github.com/EL93019205/stuctive
De cette façon, il est très facile de copier un ensemble de données d'application rails sur GitHub dans votre espace de travail Jenkins.
Il ne reste plus qu'à exécuter la commande de test automatisé avec ces données récupérées dans le répertoire contenant le Gemfile. La commande de test automatique est complètement différente selon la version des rails, mais comme nous utilisons les rails 5.2.3 cette fois, elle peut être exécutée avec la commande suivante.
bundle exec rspec
bundle exec rubocop
Faisons cela.
Ouvrez les paramètres.
Faites défiler vers le bas et collez la commande précédente dans Run Shell. Cette commande s'exécute dans le répertoire de l'espace de travail. En d'autres termes, il sera exécuté dans le répertoire où se trouve le Gemfile. Cliquez sur Enregistrer lorsque vous avez terminé.
Ensuite, exécutez la compilation.
Ah, l'historique de construction est devenu rouge. Quelle était la cause?
Cliquez sur ● </ font> # 2 pour ouvrir la sortie de la console.
Vous pouvez voir le journal des erreurs suivant en bas.
Cela signifie que vous avez besoin d'une installation groupée. C'est un comportement attendu, j'ai donc osé faire une erreur.
Revenez donc aux paramètres et ajoutez l'installation du bundle.
Enregistrez et exécutez à nouveau la compilation
J'obtiens à nouveau une erreur. Cliquez sur ● </ font> # 3 pour ouvrir la sortie de la console.
La version ruby est 2.6.3, mais le Gemfile dit 2.5.1, donc je me fâche de ne pas pouvoir regrouper l'installation.
Je pense que c'est la partie où une telle erreur peut ou non se produire selon la personne. Vous pouvez également obtenir des erreurs différentes. Après tout, l'environnement diffère considérablement selon le PC.
C'est une mauvaise idée d'installer rbenv ou d'essayer d'installer Homebrew ici. Je suis accro à la boue. J'en étais accro.
À la suite de diverses investigations, il semble que la variable d'environnement PATH soit écrasée lorsque la construction Jenkins est exécutée.
Il est conçu pour vous permettre d'utiliser des variables d'environnement pour Jenkins, donc c'est possible.
Alors, faisons en sorte que la variable d'environnement PATH soit écrasée par le PATH du PC local après l'exécution de la construction.
Pour vérifier la variable d'environnement PATH, exécutez la commande suivante sur le terminal Mac. Cette commande est une commande pour obtenir une liste de toutes les variables d'environnement avec la commande printenv, les connecter avec | en fonction du résultat et afficher uniquement les lignes contenant PATH avec la commande grep.
printenv | grep PATH
Ensuite, la valeur de la variable d'environnement PATH s'affiche.
Cela varie d'une personne à l'autre, mais Jenkins doit renvoyer ce PATH.
Par conséquent, réécrivez comme suit.
export PATH="Collez le contenu du PATH que vous avez copié précédemment"
bundle exec rspec
bundle exec rubocop
Dans mon cas, cela ressemble à ceci: Veuillez lire le CHEMIN car il varie d'une personne à l'autre.
Maintenant, enregistrez et cliquez à nouveau sur Exécuter la génération.
La construction a réussi!
Ouvrons la sortie console de ● </ font> # 4 et regardons le journal.
Tout d'abord, vous pouvez voir que le journal d'installation du bundle est affiché.
Ensuite, vous pouvez voir que le rspec exec du bundle est journalisé.
Enfin, vous pouvez voir que le rspec exec du bundle est journalisé.
Vous pouvez désormais créer un travail qui teste automatiquement votre application rails en exécutant une génération.
Ici, "Un script shell pour le branchement de l'utilisation de ● </ font> ou ● </ font> en fonction du résultat de l'exécution de rubocop ou rspec. Vous vous êtes peut-être demandé: "N'est-il pas nécessaire de le créer?"
En conclusion, ce n'est pas nécessaire. Les commandes bundle exec rspec et bundle exec rubocop renvoient un code d'erreur en cas d'erreur, et Jenkins examine le code d'erreur et soit ● </ font> ou <font Il décide s'il faut utiliser color = "red"> ● </ font>. C'est pratique!
Si vous ne comprenez pas les scripts shell, les shells, les commandes telles que grep et printenv, et la signification des variables d'environnement, vous ne connaissez pas Linux, vous devriez donc étudier avec les livres suivants. ~~ J'ai aussi un Linux rafraîchissant, donc je pense acheter ce livre et étudier. ~~ https://www.amazon.co.jp/dp/B072K1NH76/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1
C'est tout pour cette fois.
Vous pouvez utiliser un webhook pour pousser vers la branche thématique d'un référentiel distant afin d'exécuter un test automatisé, mais j'aimerais vous présenter cela un autre jour.
Attention! Même si vous copiez la procédure telle quelle, elle ne peut pas être déployée automatiquement ici. Parce que je possède le master.key pour l'application rails. De plus, mon application personnelle est déjà conçue pour pouvoir être déployée dans l'environnement de production avec une seule commande avec Capistrano. La méthode n'est pas décrite. C'est difficile, mais je vais vous montrer comment créer l'environnement de production ci-dessous. https://drive.google.com/drive/folders/14F4AmgnK0n022uYLatlQbvuPIGLGLFgt
Je vais vous montrer seulement comment le faire. C'est super facile à faire avec Jenkins.
Cliquez sur Créer un nouveau travail.
Définissez le nom du travail sur "stuctive_auto_deploy" et le type de travail sur Projet libre et cliquez sur OK.
Définissez le contrôle de code source sur Git et l'URL du référentiel sur https://github.com/EL93019205/stuctive.git (mon application personnelle).
Sélectionnez Run Shell à partir de Add Build Procedure for Build et faites ressembler le script shell à ceci:
Il y a trois choses que je fais. -Overwrite Jenkins PATH avec local PC PATH (identique au test automatique) ・ Copiez master.key d'où master.key se trouve dans l'espace de travail et récupérez-le -Exécuter la commande de déploiement automatique de Capistrano
Cliquez sur Enregistrer, puis sur Exécuter la génération.
Après avoir exécuté la construction, l'historique de construction sera ● </ font> # 1.
Cliquez sur ● </ font> # 1 et cliquez sur Sortie de la console pour confirmer que le journal du déploiement automatique est affiché.
Vous pouvez désormais déployer automatiquement des applications rails dans Jenkins en exécutant une build.
Vous pouvez peut-être utiliser un webhook pour exécuter le déploiement automatique lorsque la branche principale du référentiel distant est mise à jour, mais je suis toujours en train d'étudier cela, alors j'aimerais le présenter un autre jour.
Si vous trouvez quelque chose de difficile à comprendre, veuillez le laisser dans les commentaires. Merci d'avoir lu jusqu'au bout.
Recommended Posts