2016-03-26 34 views
5

Mam budynek biblioteki ObjectOS-C iOS na Travis CI. Właśnie włączyłem analizę statyczną w moim pliku .travis.yml i znalazłem problem (martwy magazyn), ale nie zawiodło to kompilacji w Travis. Oto odpowiedni wiersz w moim .travis.yml (line-zawinięte dla czytelności):Sprawia, że ​​niepowodzenie budowy analizy statycznej na Travis

- set -o pipefail && xcodebuild analyze 
    -workspace Example/BonMot.xcworkspace 
    -scheme BonMot-Example 
    -destination 'name=iPhone 6' ONLY_ACTIVE_ARCH=NO | xcpretty 

Co muszę zrobić, aby wywołać ostrzeżenie w tej linii na niepowodzenie kompilacji na Travis CI? Możesz zobaczyć odpowiednie żądanie ściągnięcia w moim projekcie here.

Odpowiedz

1

Udało mi się wypracować sposób, aby to zadziałało z pomocą this blog post. Oto odpowiednie części przykładowego pliku .travis.yml:

language: objective-c 
rvm: 
- 2.2.4 
osx_image: xcode7.3 
install: 
- gem install xcpretty --no-rdoc --no-ri --no-document --quiet 
- export PYTHONUSERBASE=~/.local 
- easy_install --user scan-build 
script: 
# use scan-build with --status-bugs to fail the build for static analysis warnings per http://jonboydell.blogspot.ca/2013/02/clang-static-analysis.html 
- export PATH="${HOME}/.local/bin:${PATH}" # I forget whether this was necessary. Try omitting it and see what happens! 
- set -o pipefail && scan-build --status-bugs xcodebuild analyze -workspace MyWorkspace.xcworkspace -scheme MyScheme -destination 'name=iPhone 6' ONLY_ACTIVE_ARCH=NO | xcpretty 
0

Myślę, że chcesz dodać -Wunused-value do sekcji Inne flagi ostrzegawcze w ustawieniach kompilacji i ustawić "Traktuj ostrzeżenia jako błędy" na Tak.

+1

Nie chcę tylko tego konkretnego ostrzeżenia, aby nie powieść kompilacji. Chcę _all_ ostrzeżeń analizy statycznej, aby nie doszło do kompilacji. Czy ostrzeżenia będą traktowane jako błędy? Liczyć niebieskie wyniki analizy statycznej jako ostrzeżenia? –

+0

^aktualizacja: nie pojawia się. –

4

Jedyny sposób mogę uzyskać to do pracy jest użycie metody szczegółowe here

Dodaj te dwa parametry do xcodebuild lub scan -x polecenia

CLANG_ANALYZER_OUTPUT=plist-html \ 
CLANG_ANALYZER_OUTPUT_DIR="$(pwd)/clang" 

To będzie produkować plik HTML, jeżeli istnieją ostrzeżenia o klangach. Sprawdź więc, czy istnieje ten plik.

if [[ -z `find clang -name "*.html"` ]]; then 
    echo "Static Analyzer found no issues" 
else 
    echo "Static Analyzer found some issues" 
    exit 123 
fi