2016-10-07 11 views
2

Я успешно setup a project, который использует Travis CI для сборки и тестирования. Теперь я пытаюсь добавить Coverity Scan.Travis CI + Скрытие с помощью Gradle

Я создал ветку под названием coverity_scan и установил ее для создания обложек. После того, как я нажимаю коммит в этой ветке я могу видеть в 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 

Однако после этого заканчивается, я не вижу никаких опубликованных сборок или изменений в проектах панели инструментов Coverity. Статус проекта остается на pending.

Я следовал this руководство и установить мой файл .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 сборок печататься?

ответ

2

Получил некоторое время и создал виртуальную машину с 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, и, похоже, он работает.

+0

Хорошая находка с версией Gradle. Я использую '3.1' и сталкиваюсь с той же проблемой. – Bombe

+0

Благодарим вас за ответ, и я хотел бы добавить еще одно возможное место для проверки, то есть файл 'gradle.properties', в котором вы можете установить' org.gradle.jvmargs'. С '2.14.1' на некоторых системах это может вызвать ту же проблему. –

0

Для чего нет проблем с использованием Coverity с любой версией Gradle, если вы убедитесь, что вы не используете демона (просто чтобы вы могли указать --no-daemon в командной строке).

Это говорит о том, что есть много других легко пропустить gotchas, что приводит к не совсем очевидным сообщениям об ошибках.

Для полезного фона см ответ Калеба здесь:

Can't get Coverity Scan to work (Java/Kotlin/Gradle 3.3 on Windows and Travis)

Для примера работает, Вы можете обратиться к этому проекту:

https://github.com/ddimtirov/nuggets