<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.jordan-lenuff.com/index.php?action=history&amp;feed=atom&amp;title=Outillage%2FJenkins%2FChoix_version_de_PHP</id>
	<title>Outillage/Jenkins/Choix version de PHP - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.jordan-lenuff.com/index.php?action=history&amp;feed=atom&amp;title=Outillage%2FJenkins%2FChoix_version_de_PHP"/>
	<link rel="alternate" type="text/html" href="https://wiki.jordan-lenuff.com/index.php?title=Outillage/Jenkins/Choix_version_de_PHP&amp;action=history"/>
	<updated>2026-04-23T17:27:56Z</updated>
	<subtitle>Historique des révisions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://wiki.jordan-lenuff.com/index.php?title=Outillage/Jenkins/Choix_version_de_PHP&amp;diff=634&amp;oldid=prev</id>
		<title>Jordan : Page créée avec « == Présentation == Cette page a pour objet de décrire comment sélectionner une version de PHP dans Jenkins.  == Mise en œuvre == ===Avec la variable d'environnement $P… »</title>
		<link rel="alternate" type="text/html" href="https://wiki.jordan-lenuff.com/index.php?title=Outillage/Jenkins/Choix_version_de_PHP&amp;diff=634&amp;oldid=prev"/>
		<updated>2020-06-02T16:06:07Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « == Présentation == Cette page a pour objet de décrire comment sélectionner une version de PHP dans Jenkins.  == Mise en œuvre == ===Avec la variable d&amp;#039;environnement $P… »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Présentation ==&lt;br /&gt;
Cette page a pour objet de décrire comment sélectionner une version de PHP dans Jenkins.&lt;br /&gt;
&lt;br /&gt;
== Mise en œuvre ==&lt;br /&gt;
===Avec la variable d'environnement $PATH===&lt;br /&gt;
Dans le cadre d'une utilisation multiple des versions de PHP, il est nécessaire de pouvoir indiquer aux jobs Jenkins quelle version de PHP utiliser pour le build.&lt;br /&gt;
&lt;br /&gt;
A ce titre, le plugin [[#Environment Injector|Environment Injector]] a été installé.&lt;br /&gt;
&lt;br /&gt;
Pour indiquer à un projet Jenkins quel version de PHP utiliser, se rendre sur le projet en question et cliquer sur ''Configurer'' :&lt;br /&gt;
&lt;br /&gt;
:[[Fichier:ClipCapIt-190813-150054.PNG|none|thumb|300px|Jenkins - Projet]]&lt;br /&gt;
&lt;br /&gt;
Dans la configuration du projet, se rendre dans la section ''Environnements de Build'' et cliquer sur ''Inject environment variables to the build process'' :&lt;br /&gt;
&lt;br /&gt;
:[[Fichier:ClipCapIt-190813-150116.PNG|none|thumb|300px|Jenkins - Projet - Environnements de Build]]&lt;br /&gt;
&lt;br /&gt;
Dans la section précédemment ouverte, dans le champ ''Properties Content'', définir le &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; comme ceci : &amp;lt;code&amp;gt;/local/php/php7/bin:$PATH&amp;lt;/code&amp;gt;. Dans cet exemple, le chemin des binaires PHP 7 a été mis &amp;lt;u&amp;gt;devant&amp;lt;/u&amp;gt; la variable &amp;lt;code&amp;gt;$PATH&amp;lt;/code&amp;gt;. De ce fait, en cas de présence déjà existante de chemins d'autres versions de PHP, ce sera celui de PHP 7 qui prévaudra.&lt;br /&gt;
&lt;br /&gt;
:[[Fichier:ClipCapIt-190813-150136.PNG|none|thumb|300px|Jenkins - Projet - Properties Content]]&lt;br /&gt;
&lt;br /&gt;
Pour tester et vérifier la bonne prise en compte, dans la section ''Build'', ajouter une étape ''Exécuter un script shell'' et renseigner les lignes suivantes :&lt;br /&gt;
 which php&lt;br /&gt;
 composer -v&lt;br /&gt;
&lt;br /&gt;
:[[Fichier:ClipCapIt-190813-150205.PNG|none|thumb|300px|Jenkins - Projet - Build - Shell]]&lt;br /&gt;
&lt;br /&gt;
Cliquer sur Sauver :&lt;br /&gt;
&lt;br /&gt;
:[[Fichier:ClipCapIt-190813-150222.PNG|none|thumb|300px|Jenkins - Projet - Sauver]]&lt;br /&gt;
&lt;br /&gt;
Lancer ensuite un build en cliquant sur ''Lancer un build'' :&lt;br /&gt;
&lt;br /&gt;
:[[Fichier:ClipCapIt-190813-150240.PNG|none|thumb|300px|Jenkins - Projet - Lancer build]]&lt;br /&gt;
&lt;br /&gt;
Un build supplémentaire apparaît dans la section ''Historique des builds'' :&lt;br /&gt;
&lt;br /&gt;
:[[Fichier:ClipCapIt-190813-150256.PNG|none|thumb|300px|Jenkins - Projet - Historique des builds]]&lt;br /&gt;
&lt;br /&gt;
Cliquer sur le dernier build puis cliquer sur ''Console Output'' pour afficher le détail :&lt;br /&gt;
&lt;br /&gt;
:[[Fichier:ClipCapIt-190813-150333.PNG|none|thumb|300px|Jenkins - Projet - Détail build]]&lt;br /&gt;
&lt;br /&gt;
Cela affiche la sortie de la console avec le résultat des commandes définies plus haut dans la section ''Exécuter un script shell''&lt;br /&gt;
&lt;br /&gt;
:[[Fichier:ClipCapIt-190813-150352.PNG|none|thumb|300px|Jenkins - Projet - Build - Sortie console]]&lt;br /&gt;
&lt;br /&gt;
La version de PHP utilisé est bien la 7, comme défini plus haut, et Composer est fonctionnel.&lt;br /&gt;
&lt;br /&gt;
===Avec Gradle via du Groovy===&lt;br /&gt;
Lors de son installation, Jenkins est livré avec 3 outils globaux configurables : Maven, Gradle et JDK.&lt;br /&gt;
&lt;br /&gt;
Ces outils offrent des possibilités intéressantes, qui sont difficiles à mettre en oeuvre pour du PHP. De ce fait, pour charger les binaires de PHP selon la version souhaitée, il est possible de galvauder Gradle.&lt;br /&gt;
&lt;br /&gt;
====Côté administration Jenkins====&lt;br /&gt;
Aller dans l'[http://myjenkinsserver:8080/manage administration Jenkins] puis dans [http://myjenkinsserver:8080/configureTools/ Configuration globale des outils].&lt;br /&gt;
&lt;br /&gt;
Dans la section ''Gradle'', cliquer sur ''Ajouter Gradle'' pour ajouter une version de PHP :&lt;br /&gt;
:[[Fichier:ClipCapIt-190813-150440.PNG|none|thumb|300px|Jenkins - Ajouter Gradle]]&lt;br /&gt;
&lt;br /&gt;
Nommer le champ ''name'' PHP suivi de la version majeure concernée, définir ''GRADLE_HOME'' sur la localisation du répertoire d'installation de la version de PHP et décocher ''Install automatically'' :&lt;br /&gt;
:[[Fichier:ClipCapIt-190813-150500.PNG|none|thumb|300px|Jenkins - Ajouter Gradle - PHP]]&lt;br /&gt;
&lt;br /&gt;
Répéter l'action autant de fois que de versions différentes de PHP désirées et cliquer sur ''Enregistrer''.&lt;br /&gt;
&lt;br /&gt;
Cette action aura pour effet de rajouter dans le PATH le dossier ''bin'' d'une version de PHP lorsqu'elle sera appelée via un script Groovy.&lt;br /&gt;
&lt;br /&gt;
====Côté utilisation Jenkins====&lt;br /&gt;
Lors de la création/modification d'un job Jenkins au travers d'un script Groovy, pour définir la version de PHP à utiliser, il suffit d'appeler l'outil ''gradle'' correspondant à la version de PHP à utiliser. Cela se fait dans la section ''tools'', après la déclaration de l'''agent'', au début du script. Exemple pour utiliser PHP en version 7 :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;groovy&amp;quot;&amp;gt;&lt;br /&gt;
pipeline {&lt;br /&gt;
    agent any&lt;br /&gt;
    tools {&lt;br /&gt;
        gradle 'PHP7'&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    stages {&lt;br /&gt;
        stage('Test appel PHP') {&lt;br /&gt;
            steps {&lt;br /&gt;
                sh '''&lt;br /&gt;
                php -v&lt;br /&gt;
                which php&lt;br /&gt;
                echo $PATH&lt;br /&gt;
                composer --version&lt;br /&gt;
                '''&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cela aura pour effet de produire la sortie suivante :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
[workspace] Running shell script&lt;br /&gt;
+ php -v&lt;br /&gt;
PHP 7.2.19 (cli) (built: Jul 25 2019 16:09:54) ( ZTS )&lt;br /&gt;
Copyright (c) 1997-2018 The PHP Group&lt;br /&gt;
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies&lt;br /&gt;
    with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans&lt;br /&gt;
+ which php&lt;br /&gt;
/local/php/php7/bin/php&lt;br /&gt;
+ echo /local/php/php7/bin:/local/php/php7/bin:/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/MAVEN_3.5.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/local/mysql/5.6.23/bin:/local/mysql/5.6.23/share/mysql:/home/tools/bin:/usr/lib/oracle/10.2.0.4/client64/bin:/local/www/2.4.12/bin/:.&lt;br /&gt;
/local/php/php7/bin:/local/php/php7/bin:/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/MAVEN_3.5.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/local/mysql/5.6.23/bin:/local/mysql/5.6.23/share/mysql:/home/tools/bin:/usr/lib/oracle/10.2.0.4/client64/bin:/local/www/2.4.12/bin/:.&lt;br /&gt;
+ composer --version&lt;br /&gt;
Composer version 1.5.2 2017-09-11 16:59:25&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jordan</name></author>
		
	</entry>
</feed>