CI / CD-Integration für mehrere Umgebungen mit Jenkins und Fastlane. Teil 1

Im Vorfeld des Kursbeginns "iOS Developer. Basic" haben wir traditionell eine interessante Übersetzung für Sie vorbereitet und laden Sie ein, sich für ein kostenloses Webinar anzumelden, in dem unsere Experten Sie ausführlich über das Kursprogramm informieren und Ihre Fragen beantworten.


Die Einbeziehung von Continuous Integration (CI) - und Continuous Delivery (CD) -Technologien in den Entwicklungsprozess ist zweifellos die einzige Möglichkeit, die Relevanz von Codeänderungen zu verfolgen und Integrationsfehler frühzeitig zu erkennen. Dies ist auch der Weg zu debuggten Builds, die fast sofort zum Testen verfügbar sind und auch nach wesentlichen Codeänderungen an die Produktion gesendet werden können.

CI/CD , : -, , , , -, , // , .

, , ? Jenkins Fastlane  - , , .

, , Jenkins Fastlane CI . , .

Jenkins Fastlane

, CI , , Jenkins Fastlane . , Jenkins - , Java, . Jenkins (Pipelines), , (Jobs), , , , , , , . , (), Fastlane.

Fastlane - , (iOS Android), , , , . Fastlane , Lanes, , , Actions, , .

, , , - iOS- Testflight, (, , , , ) . , Testflight :

a)

b) ,

?.

, Jenkins Fastlane . , , . , Jenkins , Jenkins - Github . Github, Xcode, SCM (Source Control Management), , Github, Credentials Plugin , .

Jenkins. , Testflight.

Jenkins () => New Item (Pipeline) (Job) Jenkins “Upload to Testflight”.

 

Configure , . .

Definition , Pipeline «Pipeline Script from SCM». (SCM), Git-.

- , Testflight, github, github.

, , .

«Save» ! Jenkins. !

Scripted Pipeline. , (stages), , . Testflight, , . , :

  1. Testflight

, , Build with Parameters , , , :

, Build, , Jenkins Stage view:

, Testflight!

, , , . Console Output , , , .

, MyScript.groovy, deploy(), :

1.

checkout SCM, , Jenkins Pipeline.

stage('Checkout') {
    checkout scm
}

2.

stage('Install dependencies') {
      sh 'gem install bundler'
      sh 'bundle update'
      sh 'bundle exec pod repo update'
      sh 'bundle exec pod install'
}

CocoaPods, pod install, . - Bundler, Ruby. 2 , Bundler, Bundler , Gemfile . , , , Fastlane, , , Danger, ruby . pod repo update, pod', , , pod update, .

3.

stage('Reset Simulators') {
   sh 'bundle exec fastlane snapshot resetsimulators --force'
}

, , , , .

, Fastlane . , Fastlane Lanes , Fastfile. , , .

iOS-, , « » .

4.

stage('Run Tests') {
   sh 'bundle exec fastlane test'
}

. test , Fastfile, :

lane :test do
    scan(
        clean: true,
        devices: ["iPhone X"],
        workspace: "ourproject.xcworkspace",
        scheme: "productionscheme",
        codecoverage: true,
        outputdirectory: "./testoutput",
        outputtypes: "html,junit"
    )
    slather(
        coberturaxml: true,
        proj: "ourproject.xcodeproj",
        workspace: "ourproject.xcworkspace",
        outputdirectory: "./testoutput",
        scheme: "productionscheme",
        jenkins: true,
        ignore: [arrayofdocstoignore]
    )
end

 

Fastlane: scan slather.

Scan , workspace ( ), scheme (), codecoverage ( ) , , devices (), , .

Slather , , , , (ignore).

Fastlane- ✨. , Jenkins. , , , , .


, .

, .




All Articles