2016-03-26 42 views
5

Ho una libreria iOS Objective-C basata su CI di Travis. Ho appena attivato l'analisi statica nel mio file .travis.yml e ho trovato un problema (un archivio morto), ma non ha fallito la creazione su Travis. Ecco la relativa riga in mia .travis.yml (linea di leggibilità):Errore di analisi statica causa errore di compilazione su Travis

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

Di cosa ho bisogno di fare al fine di provocare un avvertimento in questa linea a fallire la generazione su Travis CI? Puoi vedere la relativa richiesta di pull sul mio progetto here.

risposta

1

Sono riuscito a trovare un modo per farlo funzionare con un po 'di aiuto da this blog post. Qui ci sono le parti pertinenti di un .travis.yml file di esempio:

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

Penso che si voglia aggiungere -Wunused-value alla sezione Altre bandiere di avviso delle impostazioni di generazione e impostare "Considera gli avvisi come errori" su Sì.

+1

non voglio solo questo particolare avvertimento a fallire la compilazione. Voglio tutti gli avvisi di analisi statica per fallire la costruzione. Sarebbe _tracciare gli avvertimenti come errori_ contare i risultati dell'analisi statica blu come avvertimenti? –

+0

^aggiornamento: non sembra. –

4

L'unico modo ho potuto ottenere questo lavoro è quello di utilizzare il metodo dettagliato here

Aggiungere questi due parametri alla vostra xcodebuild o scan -x comando

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

questo produrrà un file HTML se ci sono avvertimenti clang. Quindi controlla la presenza di questo file.

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