Ajoutez des informations d'identification pour permettre à Travis-CI d'utiliser un référentiel Nexus privé
Question
J'utilise Travis pour l'intégration continue.Cependant, mes projets dépendent d'un référentiel Nexus privé.Je préfère ne pas enregistrer les informations d'identification sbt dans notre référentiel.Travis soutient clés de chiffrement mais ils n'affectent que les variables d'environnement.
Comment puis-je faire en sorte que Travis s'authentifie auprès de Nexus ? sbt
ne semble pas prendre en charge les informations d'identification d'une variable d'environnement.
https://github.com/sbt/sbt/blob/0.13/launch/src/main/scala/xsbt/boot/Update.scala#L56
Il semble qu'il soit possible de spécifier un fichier d'informations d'identification à partir d'une variable d'environnement ou de spécifier des informations d'identification en tant que propriétés système.Malheureusement, cela ne semble pas fonctionner avec 0.13
.
sbt -Dsbt.boot.realm="Sonatype Nexus Repository Manager" -Dsbt.boot.host="www.there.com" -Dsbt.boot.user="deployment" -Dsbt.boot.password="password" aether-deploy
La solution
Vous pouvez définir des variables globales dans votre .travis.yml comme défini ici :http://docs.travis-ci.com/user/build-configuration/#Set-environment-variables
Ces variables globales peuvent être chiffrées pour Travis à l'aide de la gemme Travis.Expliqué par ex.ici:Comment utiliser le .travis.yml de travis-ci pour fournir des paramètres d'environnement pour l'application Node.js ?
Autres conseils
Vous souhaitez utiliser les variables d'environnement sécurisées Travis comme indiqué.En supposant que vos variables d'environnement sont NEXUS_USER
et NEXUS_PASS
, la ligne de commande doit être :
sbt 'set credentials += Credentials("Sonatype Nexus Repository Manager", "www.there.com", System.getenv("NEXUS_USER"), System.getenv("NEXUS_PASS"))' aether-deploy
Vous pouvez également avoir cette ligne en toute sécurité dans votre build.sbt
, si vous vouliez en faire une pratique standard pour vos builds.
Le Module Jackson Scala l'utilise pour déployer les builds Travis dans le référentiel Sonatype OSS.Vous pouvez notre .travis.yml
pour voir comment c'est mis en place.