我正在 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
根据这篇文章,我所做的尝试是将 $TERM 变量设置为 gradle 调用之前的运行命令。但是构建仍然无法寻找这个变量。
问题:
如何解决 $TERM 未设置在 gradlew ./assembleRelease 上 CIrcleCI 的问题?
根据此 SO 帖子,我确实验证了我使用的是正确的 docker 映像:
https://stackoverflow.com/a/45744987/1829251
这是android
CI 作业的 config.yml 要点:
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