2017-12-18 138 views
-2

我有一个使用MovieDB.org API显示电影的Android应用程序。如何为Travis-CI加密和使用TheMovieDB API_KEY?

我已经做了我的加密API_KEY theMovieDB.org为travic CI如下:

gem install --user travis 
    travis encrypt API_KEY = my_api_key --add 

所以,基本上,它会在.travis.yml一个安全密钥并将其存储。 但它似乎没有工作。我收到以下错误:

Execution failed for task ':app:compileDebugJavaWithJavac'. 
    > Compilation failed; see the compiler error output for details. 

我知道我得到这个错误,因为特拉维斯CI想不出我API_KEY。因为无论何时直接使用我的密钥,Travis CI都会通过构建。 但不幸的是没有用上面的代码加密那个KEY。 我正在做他们在文档中提到的一切。

这是我.tavis.yml:

language: android 

env: 
    global: 
    secure: some_lengthy_secure_key 

android: 
    components: 
      - platform-tools 
      - build-tools-25.0.3 
      - android-25 
      - extra-android-m2repository 
script: 
    - ./gradlew build 

before_install: 
    - chmod +x gradlew 

branches: 
    only: 
      - master 

这是我的项目:https://github.com/Parag2385/PopularMovies-P

+0

错误清楚地表明你的*编译*失败。是什么让你认为这与API密钥有关?只有在程序运行之前,该密钥才会被使用。 –

+0

因为当我在没有API_KEY的Android studio上编译我的项目时,它给了我完全相同的错误。并且使用API​​_key,它可以成功地在仿真器上以及在实际设备上遵循并运行。那么还有什么原因可以在那里? –

+0

而且,当我将我的API_KEY保存在gradle.properties文件中,然后在travis CI上构建时,它不会给我错误,而是成功构建传递。 但出于安全原因,我无法将我的API_KEY保存在GitHub仓库中,对不对? –

回答

0

我将与你的诊断似乎并不匹配您所描述的错误提意见达成一致。总之:

你能删除空格周围travis encrypt API_KEY = my_api_key --add,使之成为:

travis encrypt 'API_KEY=my_api_key' --org -r Parag2385/PopularMovies-P 

请注意一些其他的变化:

  • 加引号的变量赋值。请检查密钥中是否有单引号。
  • 增加了一些事情,以确保正确的端点合适的项目选择
  • 删除--add的事情,所以请得到的字符串复制到.travis.yml的适当位置。这是你有机会删除以前的,错误的条目:)