簡體   English   中英

用Gradle進行Travis CI + Coverity掃描

[英]Travis CI + Coverity scan with Gradle

我已經成功設置了一個使用Travis CI進行構建和測試的項目。 現在,我正在嘗試添加Coverity Scan。

我創建了一個名為coverity_scan的分支,並將其設置為用於coverity構建。 將提交推送到該分支后,我可以在Travis CI構建控制台中看到Coverity工具開始執行其工作:

Coverity Scan analysis selected for branch coverity_scan.
Coverity Scan analysis authorized per quota.

...

Running Coverity Scan Analysis Tool...

Travis構建成功,在Coverity build-log.txt文件中,我看到以下內容:

2016-10-06T21:02:39.132946Z|cov-build|2665|info|> 
2016-10-06T21:02:39.132946Z|cov-build|2665|info|> Build time (cov-build overall): 00:01:36.812431
2016-10-06T21:02:39.132946Z|cov-build|2665|info|> 
2016-10-06T21:02:39.134719Z|cov-build|2665|info|> Build time (Java emits total): 00:01:07.595656
2016-10-06T21:02:39.134719Z|cov-build|2665|info|> 
2016-10-06T21:02:39.134719Z|cov-build|2665|info|> 
2016-10-06T21:02:39.134763Z|cov-build|2665|info|> Emitted 30 Java compilation units (100%) successfully
2016-10-06T21:02:39.134763Z|cov-build|2665|info|> [WARNING] Recoverable errors were encountered during 1 of these Java compilation units.
2016-10-06T21:02:39.134763Z|cov-build|2665|info|> 
2016-10-06T21:02:39.134763Z|cov-build|2665|info|> 30 Java compilation units (100%) are ready for analysis
2016-10-06T21:02:39.134763Z|cov-build|2665|info|>  For more details, please look at: 
2016-10-06T21:02:39.134763Z|cov-build|2665|info|>     /home/travis/build/Edvinas01/chat-rooms/server/cov-int/build-log.txt

但是,完成此操作后,我在Project Coverity儀表板中看不到任何已提交的構建或更改。 項目狀態保持為pending

我已按照指南進行操作, .travis.yml如下所示設置了.travis.yml文件:

language: java
jdk:
  - oraclejdk8
before_script:
  - cd server
  - chmod +x gradlew
script:
  # Run tests when not on coverity branch.
  - if [ ${COVERITY_SCAN_BRANCH} != 1 ]; then
      ./gradlew check;
    fi
cache:
  directories:
  - ~/.gradle
after_success:
  # Upload coveralls when not on coverity branch.
  - if [ ${COVERITY_SCAN_BRANCH} != 1 ]; then
      ./gradlew cobertura coveralls;
    else
      cat cov-int/build-log.txt;
    fi
notifications:
  email:
    on_success: change
env:
  matrix:
    - TERM=dumb
  global:
    # COVERITY_SCAN_TOKEN
    - secure: "<TOKEN>"
before_install:
  - echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
addons:
  coverity_scan:
    project:
      name: "Edvinas01/chat-rooms"
      description: "Build submitted via Travis CI"
    notification_email: "<EMAIL>"
    build_command_prepend: "./gradlew clean"
    build_command: "./gradlew build"
branch_pattern: coverity_scan

我是否必須指定一些其他配置才能發布Coverity版本?

花了一些時間,並使用Java和覆蓋率分析工具創建了虛擬機。 拉動我的項目並運行該工具后,我在日志中注意到了這一點:

[WARNING] No files were emitted. This may be due to a problem with your configuration
or because no files were actually compiled by your build command.

經過一番擺弄並查看了其他項目之后,我發現這是由於Gradle版本引起的。 我的項目使用3.0所以我降級到2.14.1 ,它似乎終於可以正常工作了。

對於有價值的東西,只要確保不使用守護程序(只要可以在命令行上指定--no-daemon就可以在任何Gradle版本中使用Coverity都沒有問題。

就是說,還有許多其他容易錯過的陷阱,導致不很明顯的錯誤消息。

有關有用的背景,請參見Caleb的答案:

無法使Coverity Scan正常工作(Windows和Travis上的Java / Kotlin / Gradle 3.3)

對於工作示例,您可以參考以下項目:

https://github.com/ddimtirov/nuggets

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM