Intégration CI / CD pour plusieurs environnements avec Jenkins et Fastlane. Partie 1

En prévision du début du cours "Développeur iOS. Basique", nous avons traditionnellement préparé une traduction intéressante pour vous, et nous vous invitons également à vous inscrire à un webinaire gratuit, dans lequel nos experts vous parleront en détail du programme du cours et répondront également à vos questions.


L'intégration des technologies d'intégration continue (CI) et de livraison continue (CD) dans le processus de développement est indéniablement le seul moyen de suivre la pertinence des changements de code et d'identifier les erreurs d'intégration dès les premières étapes. C'est également le chemin vers les versions déboguées qui sont presque immédiatement disponibles pour les tests et prêtes à être envoyées en production même après des modifications de code importantes.

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