【问题标题】:How to display HTML-formatted output files in Travis?如何在 Travis 中显示 HTML 格式的输出文件?
【发布时间】:2020-08-14 17:56:27
【问题描述】:

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

在变体发布上运行 lint:发现 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 中访问 output/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: [...]

【问题讨论】:

  • 很抱歉在这里提问,但我花了很多时间寻找构建像您这样的文件的好方法(使用 bintrayUpload)。你有任何链接,我可以在其中找到更多信息如何做到这一点?

标签: android gradle android-gradle-plugin travis-ci


【解决方案1】:

您可以使用lynx -dump 转储 Travis 运行的任何 HTML 文件输出的纯文本呈现。

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

addons:
  apt:
    packages:
      - lynx

假设 HTML 文件是某种错误日志,您可以通过在 .travis.ymlscript 部分中添加类似以下内容来让 Travis 显示输出:

after_failure:
  - if [ -f /home/travis/build/…/foo.html ]; then lynx -dump /home/travis/build/…/foo.html; fi

【讨论】:

  • 我有这个:脚本: - if [ -f /home/travis/build/leandroBorgesFerreira/MoreCLoseButton/app/build/outputs/lint-results-debug.html ];然后 lynx -dump /home/travis/build/leandroBorgesFerreira/MoreCLoseButton/app/build/outputs/lint-results-debug.html; fi - ./gradlew -PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" build bintrayUpload --stacktrace --info 但现在我得到:语法错误:():找不到预期的' :' 在第 20 行第 3 列扫描一个简单的键
  • .travis.yml 文件的第 20 行是什么?您能否在问题中发布您的.travis.yml 文件的副本?
  • 我现在将 .travis.yml 放入问题中
  • 似乎.travis.yml 文件在build 之后和bintrayUpload --stacktrace --info 之前有一个换行符?如果是这样,那里不应该有换行符——它应该都在一行上。 `
  • 是的,你是对的……那是愚蠢的,对此感到抱歉。我正在正确运行 travis,我会告诉你转储是否有效
【解决方案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.properties:lint.output.console=false

.travis.yml:gradlew -Plint.output.console=true build

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多