如何在Travis中访问输出文件?

问题描述 投票:8回答:2

我正在尝试使用Travis-CI在Bintray上部署Android库。但是当我上传我的回购...我得到了这个:

Ran lint on variant release:发现了6个问题

Ran lint on variant debug: 6 issues found

Wrote HTML report to file:///home/travis/build/leandroBorgesFerreira/MoreCLoseButton/app/build/outputs/lint-results-debug.html

Wrote XML report to file:///home/travis/build/leandroBorgesFerreira/MoreCLoseButton/app/build/outputs/lint-results-debug.xml

:app:lint FAILED

通常我会去我的项目输出并阅读lint-results-debug.html ...但我不知道如何在Travis中访问此文件。

那么,如何在Travis中访问outputs / lint-results-debug.html?

欢迎任何帮助!

编辑

我的.travis.yml:

language: android
jdk: oraclejdk8
sudo: false

addons:
  apt:
    packages:
      - lynx

android:
  components:
  - platform-tools
  - tools
  - build-tools-25.0.0
  - android-25
  - extra-android-m2repository
script: 
  - if [ -f /home/travis/build/leandroBorgesFerreira/MoreCLoseButton/app/build/outputs/lint-results-debug.html ]; then lynx -dump /home/travis/build/leandroBorgesFerreira/MoreCLoseButton/app/build/outputs/lint-results-debug.html; fi
  - ./gradlew -PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" build
  bintrayUpload --stacktrace --info
env:
  global:
  - secure: [...]
  - secure: [...]
android gradle android-gradle travis-ci
2个回答
4
投票

您可以使用lynx -dump转储outputs/lint-results-debug.html的纯文本呈现。

要让Travis安装lynx -dump:在你的.travis.yml顶部,添加:

addons:
  apt:
    packages:
      - lynx

为了让Travis使用lynx显示lint输出:在script.travis.yml部分,添加:

after_failure:
  - if [ -f /home/travis/build/leandroBorgesFerreira/MoreCLoseButton/app/build/outputs/lint-results-debug.html ]; then lynx -dump /home/travis/build/leandroBorgesFerreira/MoreCLoseButton/app/build/outputs/lint-results-debug.html; fi

2
投票

虽然sideshowbarker给出了一个通用答案,但我想指出Android lint有一个option for console output,所以你可以在你的build.gradle中做到这一点:

android {
    lintOptions {
        textReport = true
        //textOutput "stdout" // default location, perfect for travis
    }
}

这消除了对额外依赖的需要,以及额外的脚本;加上它可以轻松地在本地机器上重现。

人们可以更进一步(如果要避免本地机器上的垃圾邮件控制台)并且这样做

android {
    lintOptions {
        textReport = project.property("lint.output.console").toBoolean()
    }
}

gradle.propertieslint.output.console=false

.travis.ymlgradlew -Plint.output.console=true build

热门问题
推荐问题
最新问题