如何解决 $TERM not set on gradlew ./assembleRelease on CIrcleCI?

How to resolve $TERM not set on gradlew ./assembleRelease on CIrcleCI?

我正在 circleci 2.0 上构建一个工作流程,到目前为止,工作 运行 正在等待 android 工作。

在构建步骤 ./gradlew assembleRelease 它失败说明未设置 ENV VAR:

Unzipping /home/circleci/.gradle/wrapper/dists/gradle-2.14.1-all/8bnwg5hd3w55iofp58khbp6yv/gradle-2.14.1-all.zip to /home/circleci/.gradle/wrapper/dists/gradle-2.14.1-all/8bnwg5hd3w55iofp58khbp6yv
Set executable permissions for: /home/circleci/.gradle/wrapper/dists/gradle-2.14.1-all/8bnwg5hd3w55iofp58khbp6yv/gradle-2.14.1/bin/gradle

FAILURE: Build failed with an exception.

* What went wrong:
Could not open terminal for stdout: $TERM not set

我根据 this post 所做的尝试是在 gradle 调用之前将 $TERM 变量设置为 运行 命令。但是构建仍然无法找到这个变量。

问题:

如何解决 gradlew ./assembleRelease on CIrcleCI 上未设置的 $TERM?

我确实根据这个 SO post:

验证了我使用的是正确的 docker 图片

这是 config.yml android CI 工作的要点:

 android:
    working_directory: ~/repo/android
    docker:
      - image: circleci/android:api-25-node8-alpha
    steps:
      - checkout:
          path: ~/repo
      - restore_cache:
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
      - attach_workspace:
          at: ~/repo
      - run: ./gradlew androidDepedencies    
      - run: export TERM=xterm   
      - run: sudo chmod +x ./gradlew
      - run: ./gradlew assembleRelease
      - save_cache:
          paths:
            - ~/.gradle
          key: jars-{{ checksum "build.gradle" }}-{{ checksum  "app/build.gradle" }}
      - store_test_results:
path: ~/repo/android/reports

我错误地导出了 ENV VAR,使用以下修复了 android 构建中丢失的 $TERM not set 错误:

 - run: export TERM=xterm && ./gradlew androidDepedencies    

免责声明:CircleCI 的开发人员布道师

      - run: export TERM=xterm

该行仅为特定 shell 设置变量 $TERM。每 run 步开始一个全新的 shell.

您在同一步骤中 运行 gradlew 的解决方案是一种可能的解决方案:

 - run: export TERM=xterm && ./gradlew androidDepedencies  

另一种方法是正确导出 $TERM,以便所有后续步骤都可以看到该变量。这将像这样完成:

      - run: echo 'export TERM=xterm' >> $BASH_ENV

$BASH_ENV 包含指向每个 CircleCI step 开头的 Bash 文件的路径。这是它的来源:https://circleci.com/docs/2.0/env-vars/#setting-path