Переменные среды Travis CI с свойствами Gradle
Как использовать переменные travis-ci env в качестве свойств Gradle?
Я локально имею свои gradle.properties по пути Gradle, имеющим:
sonatypeRepo = abcd
Что используется в моей build.gradle:
uploadArchives {
//more
repository(url: sonatypeRepo) {
// more
}
//more
}
Конечно, локально это работает. В travis я добавил переменную под настройками, поэтому я вижу журнал сборки:
Setting environment variables from repository settings
$ export sonatypeRepo=[secure]
И это не так:
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
Как я могу использовать переменную env Travis как свойство Grable , но также имеет локальную сборку?
Ответы
Ответ 1
Я тоже наткнулся на это.
Вот как я заработал:
В моем build.gradle
def uzer = hasProperty('blahUser') ? blahUser : System.getenv('blahUser')
def creds = hasProperty('blahPwd') ? blahPwd : System.getenv('blahPwd')
В моих $HOME/.gradle/ gradle.properties
blahUser=batman
blahPwd=eatsworms
Так что мне это нужно для travis-ci, который, как я думаю, не имеет понятия $HOME/.gradle/ gradle.properties. Но вы можете добавить переменные среды в .travis.yml.
В принципе, как упоминалось ранее, если свойство "есть"; gradle использует его, в противном случае запрашивает для него среду. В моем случае была нужна проверка 'hasProperty()', чтобы travis не генерировал свойство, не найденное исключение.....
НТН...