【问题标题】:How to encypt and use TheMovieDB API_KEY for Travis-CI?如何为 Travis-CI 加密和使用 TheMovieDB API KEY?
【发布时间】:2017-12-18 11:37:16
【问题描述】:

我有一个使用 theMovieDB.org API 播放电影的 Android 应用。

我为 travic CI 加密了我的 theMovieDB.org API_KEY:

    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.

我知道我收到此错误是因为 travis 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

【问题讨论】:

  • 该错误清楚地表明您的编译失败。是什么让您认为这与 API 密钥有关?在您的程序运行之前,不会使用该密钥。
  • 因为当我在没有 API_KEY 的 Android Studio 上编译我的项目时,它给了我完全相同的错误。并且使用 API_key 它成功地在模拟器和实际设备上编译和运行。那么还有什么原因呢?
  • 而且当我将 API_KEY 保存在 gradle.properties 文件中,然后在 travis CI 上构建时,它不会给我错误,而是构建成功。但出于安全原因,我不能将我的 API_KEY 保存在 GitHub 存储库中,对吧?

标签: android travis-ci api-key themoviedb-api


【解决方案1】:

我同意评论者的观点,即您的诊断似乎与您描述的错误不符。总之:

你能不能把travis encrypt API_KEY = my_api_key --add周围的空格去掉,让它变成:

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

请注意一些额外的变化:

  • 为变量赋值添加了引号。请检查键中是否没有单引号。
  • 添加了一些内容以确保在正确的端点上选择正确的项目
  • 删除了--add 的东西,所以请将生成的字符串复制到.travis.yml 中的适当位置。这样您就有机会删除以前的错误条目 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-25
    • 2012-03-09
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    相关资源
    最近更新 更多