2014-09-24 23 views
10

Travis-ci env değişkenlerini Gradle özellikleri olarak nasıl kullanabilirim?Travis CI ortam değişkenleri Gradle özellikleriyle

Ben yerel olarak sahip gradle yolu altında benim gradle.properties var: my build.gradle kullanılan

sonatypeRepo = abcd 

:

uploadArchives { 
    //more  
    repository(url: sonatypeRepo) { 
     // more 
    } 
    //more 
} 

Tabii yerel olarak çalışır. Ben yapı günlüğüne bakın böylece Travis ben ayarları altında değişken ekledik:

Setting environment variables from repository settings 
$ export sonatypeRepo=[secure] 

Ve sanki başarısız:

FAILURE: Build failed with an exception. 
* Where: 
Build file '/home/travis/build/Diolor/Swipecards/library/build.gradle' line: 49 
* What went wrong: 
A problem occurred evaluating project ':library'. 
> No such property: sonatypeRepo for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer 

nasıl Grable'la olarak Travis'in env değişkeni kullanabilirsiniz Özellik ama da yerel yapı olarak var mı?

+0

Travis'in env değişkeni env değişken olarak ayarlandı mı ..... ihtiyaç duyulmuştur? Ben reppo = sonatypeRepo?: System.getenv ('sonatypeRepo') 'deneyin. İlk kısım yerel olarak çalışmalı, ikincisi Travis'de. – Opal

+0

@Opal travis 'bash bunu ihraç ediyor, bu yüzden mevcut olmalı. Başarısız, daha fazla deneyecek deposu (url: sonatypeRepo?: "$ System.env.sonatypeRepo") {} denedim. – Diolor

+1

Soru, Travis tarafından ayarlanan değişkenin 'System.env' üzerinden okunabilmesidir. Jenkins'de öyle. Başka bir sorun da olabilir. Tamat 'sonatypeRepo' mülkünün tam olarak ne döndüğünü kontrol etmelisiniz. Eğer 'gradle.properties' içinde mevcutsa ve boşsa, mevcut olabilir, çünkü boş olabilir. – Opal

cevap

20

Bu konuda da tökezledim.

benim build.gradle

def uzer = hasProperty('blahUser') ? blahUser : System.getenv('blahUser') 
def creds = hasProperty('blahPwd') ? blahPwd : System.getenv('blahPwd') 

yılında benim $ HOME olarak/.gradle/gradle.properties

blahUser=batman 
blahPwd=eatsworms 

yüzden gerekli: İşe aldım nasıl

Bu

olduğunu Bu travis-ci için - sanmıyorum ki, $ HOME/.gradle/gradle.properties kavramına sahip değilsiniz. Ama .travis.yml için ortam değişkenleri ekleyebilirsiniz.

Temel olarak, daha önce bahsedildiği gibi, eğer özellik 'orada' ise; gradle onu kullanır, aksi takdirde ortam için sorar. Travis istisna bulunmayan bir özellik oluşturamaz diye Benim durumumda 'hasProperty()' çek

hth ...

+0

Benim build.gradle içinde project.hasProperties() kullanmak zorunda kaldı –