En aquest mòdul, explorarem com implementar CI/CD en un projecte d'aplicació mòbil. Aquest cas d'estudi proporcionarà una visió pràctica de com configurar i gestionar pipelines de CI/CD per a aplicacions mòbils, incloent-hi la construcció, proves i desplegament.
Objectius del Mòdul
- Comprendre els requisits específics de CI/CD per a aplicacions mòbils.
- Configurar un pipeline de CI/CD per a una aplicació mòbil.
- Automatitzar la construcció i les proves d'una aplicació mòbil.
- Desplegar una aplicació mòbil a un entorn de producció.
Requisits Previs
- Coneixements bàsics de CI/CD.
- Familiaritat amb el desenvolupament d'aplicacions mòbils (Android/iOS).
- Coneixements bàsics d'eines de CI/CD com Jenkins, GitLab CI/CD, etc.
- Requisits Específics de CI/CD per a Aplicacions Mòbils
1.1. Complexitat de la Construcció
- Compilació per a múltiples plataformes: Android (Gradle) i iOS (Xcode).
- Gestió de dependències: Utilització de gestors de dependències com Gradle, CocoaPods, etc.
1.2. Proves
- Proves unitàries: Proves de codi a nivell de mòdul.
- Proves d'integració: Proves de funcionalitat entre mòduls.
- Proves UI: Proves d'interfície d'usuari per assegurar que l'aplicació funciona correctament en diferents dispositius.
1.3. Desplegament
- Distribució interna: Distribució de versions beta a testers interns.
- Publicació a botigues d'aplicacions: Automatització del procés de publicació a Google Play Store i Apple App Store.
- Configuració d'un Pipeline de CI/CD per a Aplicació Mòbil
2.1. Estructura del Pipeline
- Construcció: Compilació del codi font.
- Proves: Execució de proves unitàries, d'integració i UI.
- Desplegament: Distribució interna i/o publicació a botigues d'aplicacions.
2.2. Eines Recomanades
- Jenkins: Per a la configuració i gestió del pipeline.
- Fastlane: Per a l'automatització de tasques repetitives com la construcció, proves i distribució.
- Firebase Test Lab: Per a l'execució de proves UI en diferents dispositius.
- Automatització de la Construcció
3.1. Configuració de Jenkins
- Instal·lació de plugins necessaris: Android, Xcode, Fastlane, etc.
- Configuració de nodes esclaus: Per a la construcció en diferents plataformes (Android/iOS).
3.2. Script de Construcció
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/usuari/projecte-mobil.git'
}
}
stage('Build Android') {
steps {
sh './gradlew assembleRelease'
}
}
stage('Build iOS') {
steps {
sh 'fastlane ios build'
}
}
}
}Explicació:
- Checkout: Clona el repositori de codi.
- Build Android: Compila l'aplicació Android utilitzant Gradle.
- Build iOS: Compila l'aplicació iOS utilitzant Fastlane.
- Proves Automatitzades
4.1. Proves Unitàries
- Android: Utilització de JUnit i Mockito.
- iOS: Utilització de XCTest.
4.2. Proves UI
- Android: Utilització d'Espresso.
- iOS: Utilització de XCUITest.
4.3. Integració de Proves en el Pipeline
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/usuari/projecte-mobil.git'
}
}
stage('Build Android') {
steps {
sh './gradlew assembleRelease'
}
}
stage('Test Android') {
steps {
sh './gradlew test'
sh './gradlew connectedAndroidTest'
}
}
stage('Build iOS') {
steps {
sh 'fastlane ios build'
}
}
stage('Test iOS') {
steps {
sh 'fastlane ios test'
}
}
}
}Explicació:
- Test Android: Execució de proves unitàries i UI per a Android.
- Test iOS: Execució de proves unitàries i UI per a iOS.
- Desplegament
5.1. Distribució Interna
- Firebase App Distribution: Per a la distribució de versions beta a testers interns.
5.2. Publicació a Botigues d'Aplicacions
- Google Play Store: Utilització de Fastlane per a la publicació automàtica.
- Apple App Store: Utilització de Fastlane per a la publicació automàtica.
5.3. Integració de Desplegament en el Pipeline
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/usuari/projecte-mobil.git'
}
}
stage('Build Android') {
steps {
sh './gradlew assembleRelease'
}
}
stage('Test Android') {
steps {
sh './gradlew test'
sh './gradlew connectedAndroidTest'
}
}
stage('Deploy Android') {
steps {
sh 'fastlane android deploy'
}
}
stage('Build iOS') {
steps {
sh 'fastlane ios build'
}
}
stage('Test iOS') {
steps {
sh 'fastlane ios test'
}
}
stage('Deploy iOS') {
steps {
sh 'fastlane ios deploy'
}
}
}
}Explicació:
- Deploy Android: Publicació de l'aplicació Android utilitzant Fastlane.
- Deploy iOS: Publicació de l'aplicació iOS utilitzant Fastlane.
- Resum
En aquest mòdul, hem vist com configurar un pipeline de CI/CD per a una aplicació mòbil, incloent-hi la construcció, proves i desplegament. Hem utilitzat eines com Jenkins i Fastlane per automatitzar aquestes tasques, assegurant una integració i desplegament continus eficients.
Punts Clau
- La construcció d'aplicacions mòbils pot ser complexa degut a la necessitat de suportar múltiples plataformes.
- Les proves automatitzades són essencials per assegurar la qualitat de l'aplicació.
- L'automatització del desplegament facilita la distribució interna i la publicació a botigues d'aplicacions.
Amb aquest coneixement, estàs preparat per implementar CI/CD en projectes d'aplicacions mòbils, millorant l'eficiència i la qualitat del teu procés de desenvolupament.
Curs de CI/CD: Integració i Desplegament Continu
Mòdul 1: Introducció a CI/CD
Mòdul 2: Integració Contínua (CI)
- Introducció a la Integració Contínua
- Configuració d'un Entorn de CI
- Automatització de la Construcció
- Proves Automatitzades
- Integració amb Control de Versions
Mòdul 3: Desplegament Continu (CD)
- Introducció al Desplegament Continu
- Automatització del Desplegament
- Estratègies de Desplegament
- Monitoratge i Retroalimentació
Mòdul 4: Pràctiques Avançades de CI/CD
Mòdul 5: Implementació de CI/CD en Projectes Reals
Mòdul 6: Eines i Tecnologies
Mòdul 7: Exercicis Pràctics
- Exercici 1: Configuració d'un Pipeline Bàsic
- Exercici 2: Integració de Proves Automatitzades
- Exercici 3: Desplegament en un Entorn de Producció
- Exercici 4: Monitoratge i Retroalimentació
