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