jenkins
Einrichten von Jenkins für iOS Build-Automatisierung.
Suche…
Einführung
Jetzt können Sie Continuous Integration und Continuous Delivery ( CI / CD ) als Code mit Jenkins 2.0 für Ihre Projekte in iOS 10 definieren. Aktivitäten wie Erstellen, Testen, Codeabdeckung, Prüfstil, Berichte und Benachrichtigungen können nur in einem beschrieben werden Datei.
Um den vollständigen Artikel zu lesen, gehen Sie zu Pipeline in Jenkins 2.0 als Code für iOS 10 und XCode 8
Parameter
Parameter | Einzelheiten |
---|---|
Knoten ("iOS-Knoten") | Jenkins-Knoten mit Mac OS. Wenn Jenkins unter Mac OS installiert ist, verwenden Sie den node {....} |
Bemerkungen
Der Artikel ist in beiden Sprachen verfasst: Englisch und Spanisch.
Zeitplan-Beispiel
Der Quellcode kann geklont oder von GitHub heruntergeladen werden , um ihn zu testen.
node('iOS Node') {
stage('Checkout/Build/Test') {
// Checkout files.
checkout([
$class: 'GitSCM',
branches: [[name: 'master']],
doGenerateSubmoduleConfigurations: false,
extensions: [], submoduleCfg: [],
userRemoteConfigs: [[
name: 'github',
url: 'https://github.com/mmorejon/time-table.git'
]]
])
// Build and Test
sh 'xcodebuild -scheme "TimeTable" -configuration "Debug" build test -destination "platform=iOS Simulator,name=iPhone 6,OS=10.1" -enableCodeCoverage YES | /usr/local/bin/xcpretty -r junit'
// Publish test restults.
step([$class: 'JUnitResultArchiver', allowEmptyResults: true, testResults: 'build/reports/junit.xml'])
}
stage('Analytics') {
parallel Coverage: {
// Generate Code Coverage report
sh '/usr/local/bin/slather coverage --jenkins --html --scheme TimeTable TimeTable.xcodeproj/'
// Publish coverage results
publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: false, reportDir: 'html', reportFiles: 'index.html', reportName: 'Coverage Report'])
}, Checkstyle: {
// Generate Checkstyle report
sh '/usr/local/bin/swiftlint lint --reporter checkstyle > checkstyle.xml || true'
// Publish checkstyle result
step([$class: 'CheckStylePublisher', canComputeNew: false, defaultEncoding: '', healthy: '', pattern: 'checkstyle.xml', unHealthy: ''])
}, failFast: true|false
}
stage ('Notify') {
// Send slack notification
slackSend channel: '#my-team', message: 'Time Table - Successfully', teamDomain: 'my-team', token: 'my-token'
}
}
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow