Πώς να φτιάξετε ένα σύστημα iOS κατά παραγγελία με τις Jenkins και Fastlane

Αυτό το άρθρο αφορά τη δημιουργία εκδόσεων iOS μέσω του Jenkins BOT, εξ αποστάσεως, χωρίς την ανάγκη προγραμματιστή.

Πριν ξεκινήσω, θέλω να πω ότι αυτό είναι το πρώτο μου άρθρο. Μη διστάσετε λοιπόν να αφήσετε ένα σχόλιο εάν κάτι μπορεί να βελτιωθεί :)

Γιατί είναι καλή ιδέα;

Όταν ένας προγραμματιστής δημιουργεί ένα χαρακτηριστικό, το ελέγχουν QA προτού το ωθήσουν στην παραγωγή. Επομένως, ένα build πρέπει να κοινοποιηθεί στην ομάδα QA με ορισμένες διαμορφώσεις δοκιμής.

Το Xcode (το IDE) απαιτεί σημαντικό χρόνο για την κατάρτιση και τη δημιουργία αυτής της έκδοσης. Αυτό σημαίνει ότι κάθε άτομο που χρειάζεται το build θα πρέπει να εγκαταστήσει το IDE, να κλωνοποιήσει το αποθετήριο, να δημιουργήσει μια ταυτότητα υπογραφής και ένα πιστοποιητικό και στη συνέχεια να δημιουργήσει το ίδιο το build. Ή εξαρτάται από τον προγραμματιστή για να δημιουργήσει ένα για αυτούς.

Κατά τη διαδικασία δημιουργίας build, το IDE δεν μπορεί να χρησιμοποιηθεί. Αυτό επηρεάζει σοβαρά την παραγωγικότητα του προγραμματιστή. Στην εταιρεία μου, ο μέσος χρόνος κατασκευής ενός .ipa είναι περίπου 20 λεπτά. Κατά μέσο όρο, ένας προγραμματιστής κάνει 2-3 κατασκευές καθημερινά.

Αυτό σημαίνει ότι χάνονται 5 ώρες εργασίας την εβδομάδα.

Τι γίνεται όμως αν υπήρχε ένα αυτοματοποιημένο σύστημα που θα μπορούσε να δημιουργήσει μόνη της τις κατασκευές; Αυτό θα απαλλάξει τους προγραμματιστές από αυτήν την ευθύνη. Θα επέτρεπε επίσης σε οποιονδήποτε να αποκτήσει μια κατασκευή εύκολα.

Η Jenkins είναι μια από τις λύσεις στο πρόβλημά μας.

Η εύκολη διάθεση των κτιρίων σε δοκιμαστές και προγραμματιστές διασφαλίζει ότι οι χρήστες μπορούν να δοκιμάσουν τα χαρακτηριστικά γρηγορότερα και να μεταφέρουν στην παραγωγή πιο εύκολα. Αυτό βελτιώνει την παραγωγικότητα των ομάδων ανάπτυξης. Βελτιώνει επίσης την ποιότητα των προϊόντων που ωθούνται στην παραγωγή.

Ας ξεκινήσουμε τώρα.

Προαπαιτούμενα

Θα χρειαστείτε:

  • macOS Machine (είναι καλύτερο να το τρέχετε σε προϊόντα Mac)
  • 10 GB χώρου οδήγησης (για Jenkins)
  • Το Java 8 εγκατεστημένο (είτε ένα JRE είτε ένα Java Development Kit (JDK) είναι εντάξει)

    //www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Πρόσθετα πρόσθετα για εγκατάσταση

  • homebrew
  • κλαίω
  • Πρόσθετο RVM

    Οδηγός εγκατάστασης

    //rvm.io/rvm/security

Δημιουργήστε ένα υποκατάστημα με ένα αρχείο σε αυτό με το όνομα Jenkinsfileμε δείγμα κώδικα:

node {

sh ‘echo HelloWorld’

}

Ας το ονομάσουμε jenkins-ολοκλήρωση . Θα επανέλθω σε αυτό αργότερα.

  • Εγκαταστήστε το Xcode στον υπολογιστή σας από το App Store
  • Εγκαταστήστε το Fastlane στο μηχάνημά σας. Η Jenkins θα χρησιμοποιεί εσωτερικά εντολές fastlane για τη δημιουργία εκδόσεων.

Τώρα ας το περάσουμε βήμα προς βήμα.

Βήμα 1. Εγκαταστήστε το Jenkins στο μηχάνημά σας

Μπορείτε να εγκαταστήσετε σε MacBook ή mac-mini. Το Mac-mini προτιμάται καθώς μπορεί να διατηρηθεί ζωντανό.

Λήψη Jenkins -> //jenkins.io/

Εκτελέστε java -jar jenkins.war --httpPort = 8080 στη γραμμή εντολών. Εάν λαμβάνετε σφάλμα στο τερματικό, δοκιμάστε μια διαφορετική θύρα (για παράδειγμα, 9090), καθώς μερικές φορές ορισμένες θύρες δεν είναι διαθέσιμες.

Περιηγηθείτε στο // localhost: 8080 και ακολουθήστε τις οδηγίες για να ολοκληρώσετε την εγκατάσταση.

Στη συνέχεια, προσθέστε διαπιστευτήρια διαχειριστή και μην τα ξεχάσετε (όπως και εγώ: P). Αργότερα, μπορείτε να μεταβείτε στο Jenkins> Διαχείριση Jenkins> Διαχειριστές χρηστών και να κάνετε τις αλλαγές σας αν χρειαστεί.

Βήμα 2. Δημιουργία του πρώτου αγωγού σας

Δημιουργήστε μια νέα εργασία και επιλέξτε Pipeline Project .

Για να δείτε το έργο σας, στην ενότητα Pipeline, στο Definition, επιλέξτε Pipeline Script από SCM και στο SCM επιλέξτε Git

Στη συνέχεια, προσθέστε τη διεύθυνση URL του repo σας και προσθέστε τα διαπιστευτήρια εάν είναι ιδιωτικό repo. Στα κλαδιά για δημιουργία, προσθέστε * / jenkins-ενσωμάτωση,τον κλάδο που δημιουργήσαμε νωρίτερα.

Βεβαιωθείτε ότι το Script Path είναι το Jenkinsfile που έχουμε δημιουργήσει στον νέο μας κλάδο. Όλα τα σενάρια θα γραφτούν σε αυτό το Jenkinsfile.

Κάντε κλικ στο Save και το Jenkins θα σαρώσει αυτόματα το repo σας με το αναφερόμενο υποκατάστημα και θα εκτελέσει το σενάριο Jenkinsfile.

Τώρα είμαστε έτοιμοι να διαμορφώσουμε το Jenkinsfile ώστε να δημιουργεί εκδόσεις

Βήμα 3. Προσθέστε παραμέτρους στην εργασία

Απαιτείται είσοδος χρήστη για

  • κλαδί
  • περιβάλλον (δοκιμή ή προϊόν)

Για αυτό πρέπει να διαμορφώσουμε το έργο μας ώστε να λαμβάνει παραμέτρους εισόδου για μια εργασία.

Μεταβείτε στην ενότητα Διαμόρφωση και ελέγξτε Αυτό το έργο παραμετροποιείται .

Στη συνέχεια, επιλέξτε προσθήκη παραμέτρου και προσθέστε την αντίστοιχη.

Όταν κάνετε κλικ στην αποθήκευση, θα δείτε μια νέα ενότητα στην αριστερή πλευρά - & g t; Δημιουργία με παραμέτρους . Αυτή θα είναι η διεπαφή χρήστη για την κατασκευή.

Αυτές οι παράμετροι θα χρησιμοποιηθούν στο σενάριο Jenkins.

Βήμα 3. Διαμόρφωση του σεναρίου Jenkins

Θα δημιουργήσει πολλά βήματα στο Jenkinsfile μας, το καθένα με μία ευθύνη και θα δημιουργήσει ένα ωραίο περιβάλλον εργασίας χρήστη όταν δημιουργηθεί.

Μεταβείτε στο Jenkinsfile και αντικαταστήστε το σενάριο με τα εξής:

Αρχικά, ελέγξτε τον κλάδο μέσω της παραμέτρου που προσθέσαμε νωρίτερα. Προσθέστε το διακριτικό repo και το GitHub.

Τώρα το διακριτικό GitHub δεν πρέπει να είναι ορατό σε άλλους. Για να το κάνετε αυτό, μεταβείτε στο Manage Jenkins - & g t; Διαμόρφωση Sys tem -> Global prope rties και d add github Token ως μεταβλητή περιβάλλοντος.

Στη συνέχεια, καλέστε το σενάριο για να αλλάξετε το περιβάλλον.

Στη συνέχεια, καλέστε το fastlane για καθαρισμό (αφαίρεση παραγόμενων δεδομένων, καθαρισμός, διαγραφή αρχείων .dsym κ.λπ.).

Εάν απαιτείται υπογραφή κώδικα, κάντε το επόμενο χρησιμοποιώντας ad-hoc . Μπορείτε να χρησιμοποιήσετε την ανάπτυξη ή το κατάστημα εφαρμογών με βάση τις ανάγκες σας.

Στη συνέχεια, δημιουργήστε build χρησιμοποιώντας την εντολή γυμναστικής στο fastlane.

Βήμα 4. Εκτελέστε την εργασία

Τώρα το σενάριό μας είναι έτοιμο. Μεταβείτε στο Jenkins και ανοίξτε το Build with Parameters.

Θα ξεκινήσει να τρέχει το σενάριο και θα δημιουργήσει ένα ωραίο περιβάλλον εργασίας χρήστη με πολλά βήματα όπως αναφέρεται στο Jenkinsfile.

Όταν ολοκληρωθεί η εργασία, μεταβείτε στο έργο Users / agammahajan / .jenkins / workspace / iOS_Build_Systems

και θα δείτε ότι το .ipa έχει δημιουργηθεί. Βόλα!

Τώρα μπορείτε να μοιραστείτε αυτήν την έκδοση με άλλους. Μπορείτε να χρησιμοποιήσετε την προσθήκη Slack για να ανεβάσετε τις εκδόσεις στο Slack αν θέλετε.

Τυλίγοντας

Για να ολοκληρώσουμε εδώ, μπορούμε να δούμε πόσο εύκολο είναι να εγκαταστήσετε ένα αυτοματοποιημένο bot που επιτρέπει σε κάθε άτομο να ενεργοποιεί εκδόσεις σε μόλις 2 βήματα: Δώστε το Branch-> Test Environment-> Done

Αυτό βοήθησε εμένα και τους συναδέλφους προγραμματιστές μου να βελτιώσω την παραγωγικότητα και την αποστολή πιο γρήγορα. Βοήθησε επίσης την ομάδα QA, έτσι ώστε να μην χρειάζεται να εξαρτώνται από προγραμματιστές κάθε φορά που πρέπει να δοκιμάσουν κάτι. Ελπίζω να ωφελήσει εσάς και την εταιρεία σας.

Από εδώ, οι δυνατότητες είναι ατελείωτες.

  1. Μπορείτε να κάνετε προγραμματισμένες εργασίες για να δημιουργήσετε νυχτερινές κατασκευές.
  2. Η μεταφόρτωση δημιουργεί απευθείας στο App Store
  3. Κρυφή μνήμη των εκδόσεων, επομένως οι δημιουργίες με την ίδια διαμόρφωση δεν δημιουργούνται ξανά.
  4. Διανομή του εσωτερικού IPA για εγκατάσταση OTA (Over the air).
  5. Δημιουργήστε έναν αγωγό CI-CD για να εκτελέσετε αυτοματοποιημένες δοκιμές σε κάθε δέσμευση και να τους προετοιμάσετε για παραγωγή.