nei tempi di sviluppo del software tramite metodologie Agile, Scrum e integrazione continua, in cui tutti i membri di un team sono spesso previsti e possono eseguire diversi caricamenti al giorno a seconda del Attività da sviluppare, è essenziale utilizzare strumenti che consentono lo stato del prodotto in ogni momento, le diverse versioni e lo stato che si trova.
Ogni volta che un aumento viene eseguito il codice del repository, an Integrazione che compila il codice sorgente e verifica che sia stato fatto correttamente, ottenendo un eseguibile dell’applicazione. Per questo processo, in SDOS abbiamo optato per l’uso di Jenkins, un software gratuito e open source scritti in Java e si basa sul progetto Hudson.
Perché Jenkins?
Questo System supporta strumenti di controllo della versione come SVN o GIT e possono eseguire progetti in base a formica e maven, grado, ecc. Inoltre, essendo un progetto open source, è il più utilizzato dagli sviluppatori, con una grande comunità di sviluppo e supporto.
Ma Jenkins non è solo uno strumento per il team di sviluppo, serve anche al QA Attrezzatura: nello stesso modo in cui consente l’esecuzione di test automatici o anche l’uso di Sonarqube, subito dopo ogni compilazione consente di verificare la qualità dell’aumento.
Come utilizzare Jenkins con Android?
In Sviluppo Android, Jenkins può servirci per generare un .apk ogni volta che eseguiamo una salita di codice al repository, mantenendolo su un server FTP in cui avremo un elenco di tutte le versioni generate.
In questo post ti dico come completare l’intero processo. Abbiamo iniziato!
Crea un progetto su Jenkins
Prima, abbiamo creato un nuovo lavoro in Jenkins.
Avanti, selezioniamo un nuovo progetto freestyle per poterlo configurare in base alle nostre esigenze. Scriviamo un nome e clicciamo su OK.
Configura le sezioni del lavoro
Generale
In questa sezione definiremo quanto segue:
- nome e descrizione del progetto. È consigliabile dare un nome intuitivo al progetto e una descrizione specifica per sapere quale lavoro è in esecuzione:
- Quando vengono scaricate le vecchie build. È importante definire un numero massimo di build per salvare poiché non vogliamo sovraccaricare la macchina o riempire le esecuzioni del nostro lavoro. Come raccomandazione, resteremo con le ultime 10 esecuzioni effettuate. Se, fuori dal progetto, abbiamo bisogno di più, il numero potrebbe essere aumentato, ma dovrebbe essere solo in casi specifici.
- Parametri per eseguire il progetto. Nella parte generale definiremo anche i parametri necessari per eseguire un lavoro. Per aggiungerli, dobbiamo fare clic su questo progetto è parametrizzato e selezionare un parametro di scelta. I parametri per la compilazione di un’app Android saranno i seguenti:
- Tipo. Per impostazione predefinita su Android, due tipi, debug e versione, ma è possibile aggiungere tipi personalizzati. Nel nostro caso aggiungeremo: rilascio, preproduzione e debug.
- sapori. Un sapore definisce una versione personalizzata dell’applicazione. Questo ci consente di definire diverse personalizzazioni dell’applicazione a seconda della variante di cui abbiamo bisogno. Ad esempio, potremmo avere una farina per una demo dell’applicazione e un’altra con l’applicazione completa del pagamento.
- Parametro Git. Definiremo come parametro il ramo che vogliamo dal repository concreto. Dovremo definire un valore predefinito per le esecuzioni automatiche. Se abbiamo molti rami nello stesso repository, possiamo effettuare un filtro per nome del ramo come, ad esempio ,. * _ rc. * (Tutte le filiali che includono _RC, Reread candidate).
È possibile trovare ulteriori informazioni sui parametri in questo collegamento.
Gestione del codice sorgente
In questa sezione definiremo il tipo di repository che vogliamo utilizzare, nel nostro Caso sarà git.
Una volta selezioniamo l’opzione git dobbiamo aggiungere:
- URL del repository. Dove è stato salvato il codice del progetto.
- credenziali. Useremo l’utente Git aggiunto in precedenza in Jenkins.
- ramo. Specificheremo la filiale specifica del progetto che useremo. Come abbiamo scelto uno con il parametro dei parametri Git, passiamo il valore di quel parametro con $ Branch.
Build Trigger
In questo Sezione Definiremo il tipo di attivatore che dobbiamo eseguire la build. Se non lo aggiungiamo, verrà eseguito solo quando lo costringiamo. Da qui possiamo anche:
- Eseguire un’esecuzione remota da uno script.
- Eseguire periodicamente l’esecuzione, ad esempio ogni notte alle 00:00.
- Eseguire un’esecuzione quando una spinta o una nuova richiesta di unione si verifica nel repository.
Per ora la lasceremo per impostazione predefinita e lo eseguiremo manualmente.
Build Environment
In questa sezione definiremo due opzioni:
- Elimina la cartella di lavoro prima di ogni esecuzione (per eseguire un’esecuzione pulita).
- Aggiungi il timestamp ai registri per avere maggiori informazioni.
Build
Nella sezione di compilazione aggiungeremo un shell di esecuzione per eseguire i seguenti comandi:
- chmod + x gradlew: dà autorizzazioni di esecuzione al file gradlew nel caso in cui non li abbia (per impostazione predefinita li ha già).
- ./ Gradlew: esegui il Gradlew File sulla macchina in cui Jenkins è un Linux (fai attenzione a questo file!).
- Assemblare: è l’ordine di compilare un’applicazione Android.
- $ sapore: sapore scelto per l’esecuzione . Abbiamo messo $ per sostituire il valore del parametro selezionando dal menu a discesa Sapore nella sezione Generale.
- Tipo $: Tipo scelto per l’esecuzione. Mettiamo $ per sostituire il valore del parametro dal menu a discesa Tipo selezionato nella sezione Generale.
Azioni post-build
Da questa sezione lo faremo principalmente Tre azioni:
- Salva l’artefatto generato. Conserveremo tutti i file .apk generati nella compilazione del progetto. Per impostazione predefinita lo salveremo a: ** / *. APK
- Invieremo il file .apk all’interno della cartella / APK / A un server FTP. Nel nostro caso, abbiamo un server chiamato NAS1 in cui salviamo l’APK generato in una cartella già creata all’interno del server.Nota: per configurare la connessione con un server FTP, dobbiamo andare a gestire Jenkins > Configura Jenkins > Pubblica su FTP e aggiungi i dati corrispondenti al nostro server.
- Invia posta ogni volta che si completa una build utilizzando l’azione di notifica e-mail modificabile post-build. La configurazione saremo come segue:
È possibile copiare il contenuto del messaggio predefinito di questo html:
Oggetto predefinito
Result of Build $BUILD_NUMBER ${JOB_NAME} Project.
contenuto predefinito
<html><p> Hello. </p><p>This mail is auto-generated as part of the Jenkins execution of the project <b>${JOB_NAME}</b> </p><h2> BUILD DETAILS: </h2><p> <b>Project Name:</b> ${JOB_NAME} <br> <b>Build URL:</b> ${BUILD_URL} <br> <b> Build Number: </b> ${BUILD_NUMBER} <br> <b>Build Status: </b> ${BUILD_STATUS} <br> <b>Type: </b> $Type <br> <b>Flavor: </b> $Flavor <br> <b>Branch: </b> $Branch <br> <b>Download APK: </b> ${BUILD_URL}/lastSuccessfulBuild/artifact/apks/ <br> <b>Log: </b> The log file is attached into this e-mail. <br> <b>Log URL: </b> ${BUILD_URL}${JOB_NAME}/lastBuild/console <br> <b>Changes: </b> ${CHANGES, format="List of changes: <li><ul> %m </ul><ul> %d </ul> <ul> %r </ul></li> <br>"} <br></p><p> Thank you & Regards. </p></html>
Questo modello è generico per qualsiasi progetto Come utilizza le seguenti variabili:
- $ {job_name}. Nome del lavoro a Jenkins.
- $ {build_url}. URL esatto del lavoro
- $ build_number}. Numero di creazione eseguito.
- $ build_status}. Stato in cui la build ha finito.
- tipo $. Tipo selezionato quando si esegue la build.
- $ $ sapore. Sapore selezionato durante l’esecuzione della build.
- ramo $. Branch selezionato Quando si esegue la build, se nessuno è stato scelto, viene visualizzato il nome del ramo predefinito.
- $ Modifiche}. Visualizza le modifiche apportate al commit che ha attivato la build.
- % A: Comitato.
- % m: messaggio dal commit.
- % d: data del commit.
- % r: numero di commuto.
Questo comporterà una e-mail come quella mostrata di seguito. Riceviamo il .apk generato facilmente.