<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Travis Ci on Jean-Christophe Gay</title><link>https://jeanchristophegay.com/tags/travis-ci/</link><description>Recent content in Travis Ci on Jean-Christophe Gay</description><generator>Hugo -- gohugo.io</generator><language>fr-FR</language><copyright>© 2026 Jean-Christophe Gay</copyright><lastBuildDate>Sun, 22 Sep 2019 00:02:45 +0200</lastBuildDate><atom:link href="https://jeanchristophegay.com/tags/travis-ci/index.xml" rel="self" type="application/rss+xml"/><item><title>Déployer ses SNAPSHOT avec Travis CI</title><link>https://jeanchristophegay.com/posts/deploy-snapshot-travis-ci/</link><pubDate>Wed, 29 Jul 2015 21:23:00 +0200</pubDate><guid>https://jeanchristophegay.com/posts/deploy-snapshot-travis-ci/</guid><description>&lt;p&gt;Mini guide pour déployer des binaires SNAPSHOT sur le repository &lt;a href="https://oss.sonatype.org" target="_blank" rel="noreferrer"&gt;OSS sonatype&lt;/a&gt; avec &lt;a href="http://travis-ci.org/" target="_blank" rel="noreferrer"&gt;Travis CI&lt;/a&gt;.&lt;/p&gt;

&lt;h1 class="relative group"&gt;Configuration de Maven
 &lt;div id="configuration-de-maven" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#configuration-de-maven" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;Il faut configurer Maven pour utiliser votre compte pour uploader des artifacts sur OSSRH.&lt;br&gt;
Créer un fichier &lt;code&gt;etc/deploy-settings.xml&lt;/code&gt; et utiliser des variables pour référencer vos identifiants :&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;settings&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;servers&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;server&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;ossrh&lt;span class="nt"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;username&amp;gt;&lt;/span&gt;${env.OSSRH_USER}&lt;span class="nt"&gt;&amp;lt;/username&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;password&amp;gt;&lt;/span&gt;${env.OSSRH_PASS}&lt;span class="nt"&gt;&amp;lt;/password&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/server&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/servers&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/settings&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Ce fichier sera par la suite utilisé par &lt;code&gt;mvn&lt;/code&gt; grâce à l&amp;rsquo;option &lt;code&gt;--settings&lt;/code&gt;.&lt;/p&gt;

&lt;h1 class="relative group"&gt;Identification
 &lt;div id="identification" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#identification" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;On a deux solutions pour stocker ses identifiants et les utiliser avec Travis CI.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Stockage dans les paramètres du repository
 &lt;div id="stockage-dans-les-paramètres-du-repository" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#stockage-dans-les-param%c3%a8tres-du-repository" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Dans les options de Travis CI &lt;code&gt;https://travis-ci.org/user/repository/settings&lt;/code&gt;, on peut définir les &lt;a href="https://docs.travis-ci.com/user/environment-variables/#Defining-Variables-in-Repository-Settings" target="_blank" rel="noreferrer"&gt;variables d&amp;rsquo;environnements&lt;/a&gt; &lt;code&gt;OSSRH_USER&lt;/code&gt; et &lt;code&gt;OSSRH_PASS&lt;/code&gt;. Par défaut celles-ci seront masquées dans les logs.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Chiffrer ses identifiants
 &lt;div id="chiffrer-ses-identifiants" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#chiffrer-ses-identifiants" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Il semble évident qu&amp;rsquo;on ne va pas sauvegarder ses identifiants en clair, &lt;a href="http://docs.travis-ci.com/user/encryption-keys/" target="_blank" rel="noreferrer"&gt;Travis CI&lt;/a&gt; permet de chiffrer des données sensibles.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gem install travis
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Et là on doit faire face à Ruby&amp;hellip; Si vous ne développez pas dans cet eco-système, il y a des chances que celà se passe mal à partir de maintenant :( (en tout cas avec OS X)&lt;br&gt;
Dans mon cas j&amp;rsquo;ai eu le droit à l&amp;rsquo;erreur suivante :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; gem install travis 
Fetching: multipart-post-2.0.0.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
 You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le problème vient de la version installée par Apple, les utilisateurs de ruby utiliseront surement &lt;code&gt;rvm&lt;/code&gt;, &lt;code&gt;rbenv&lt;/code&gt; ou je ne sais quelle autre joyeuseté. Pour le commun des mortels qui ne veulent pas y passer une demi heure et qui n&amp;rsquo;ont pas envie de tout casser :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install ruby
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Relancer un shell et l&amp;rsquo;installation du gem &lt;code&gt;travis&lt;/code&gt; devrait mieux se passer&amp;hellip;&lt;/p&gt;
&lt;p&gt;On peut maintenant envoyer nos données importantes à travis :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;travis encrypt --add -r jcgay/send-notification &amp;quot;OSSRH_USER='toto'&amp;quot;
travis encrypt --add -r jcgay/send-notification &amp;quot;OSSRH_PASS='s3cret&amp;amp;'&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Si les commandes sont lancées depuis le dossier qui contient le projet l&amp;rsquo;option &lt;code&gt;-r&lt;/code&gt; n&amp;rsquo;est pas nécessaire et l&amp;rsquo;option &lt;code&gt;--add&lt;/code&gt; ajoutera automatiquement les clefs cryptées dans le fichier &lt;code&gt;.travis.yml&lt;/code&gt;.&lt;br&gt;
&lt;code&gt;jcgay/send-notification&lt;/code&gt; correspond bien entendu au projet pour lequel ont veut chiffrer des données.&lt;/p&gt;

&lt;h1 class="relative group"&gt;Configuration de Travis CI
 &lt;div id="configuration-de-travis-ci" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#configuration-de-travis-ci" aria-label="Ancre"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;On veut déployer les SNAPSHOT sauf si Travis est en train de builder une pull-request. On peut pour cela utiliser la variable &lt;code&gt;${TRAVIS_PULL_REQUEST}&lt;/code&gt;.&lt;br&gt;
La variable &lt;code&gt;${TRAVIS_TAG}&lt;/code&gt; permet de ne pas non plus déployer les releases (qui ne sont pas faites avec Travis dans mon cas).&lt;/p&gt;
&lt;p&gt;On se retrouve donc avec les variables d&amp;rsquo;environnement cryptées au sein de &lt;code&gt;.travis.yml&lt;/code&gt; :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;env:
 global:
 - secure: GT8Hi5kgx2cLAGzh2ggZNTgiLm8J5fd64SYG3bkhgwZGbV/HRD8r8a1SYv1iQ72JqrDhlHQ7q8h17nDBFLjy99h/XKN4MacBu9CZhnPO7lXpuRefD3W/db6zWSk17a5DAKAt+1UOeyfohEkzx+JHcTfbvMg6hy+3DEPaVMUtV04=
 - secure: fQ4bSOcHWEURfsDQVhWA152GCiezQfh9YC45a2zae8oOk+6bIrHmrkJSyVYpUCLGdqO3Df+JTy6bfoqyJEsX7PkzGPZ10odSHw5qDqfTIolt7UympKtUvUNi6h5G6virGhBWjjs5REGjrgWdTlqKjNT2Ax/VlzNRskqaVAhEhl0=
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;et une étape de plus dans la section &lt;code&gt;after_success:&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;after_success:
 - &amp;quot;[[ ${TRAVIS_PULL_REQUEST} == 'false' ]] &amp;amp;&amp;amp; [[ ${TRAVIS_TAG} == '' ]] &amp;amp;&amp;amp; mvn deploy -DskipTests --settings etc/deploy-settings.xml&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Et voilà tout roule !&lt;/p&gt;</description></item></channel></rss>