Ottieni un'introduzione rapida alla CI di GitLab in questo video informativo. Perfetto per chi è alle prime armi e per chi desidera comprendere meglio la CI di GitLab.
Guida rapida per l'integrazione continua di GitLab
Ti diamo il benvenuto nella guida rapida della CI di GitLab. Qui ti guideremo passo passo attraverso tutto il processo di creazione di un progetto in GitLab e di configurazione della CI tramite codice. Questa guida ti consentirà di iniziare velocemente a usare la CI di GitLab.
In questa guida rapida sono descritte le seguenti attività:
- - Creazione di un nuovo progetto.
- - Configurazione iniziale della CI/CD ed esecuzione della pipeline.
- - Accesso e revisione dei risultati dell'esecuzione.
- - Aggiunta di condizioni con regole per determinare l'esecuzione dei job.
- - Sfruttare la potenza dei modelli di pipeline per una perfetta integrazione di configurazioni vantaggiose.
Integrazione continua - Prima di iniziare
All'interno di un progetto vengono gestiti vari componenti come la codebase, la configurazione della CI, la pianificazione, l'analisi e i membri del team. In questa guida creeremo un nuovo progetto vuoto, contenente solo un file readme.
- Crea un nuovo progetto facendo clic sull'icona "+" situata a destra della barra superiore, poi seleziona Nuovo progetto/repository
- Seleziona Crea progetto vuoto. In `Project name` digita my-project.
- Fai clic su Crea progetto.
- Congratulazioni, hai creato correttamente il tuo primo progetto.
Creazione del file di configurazione
Definizione delle fasi della pipeline
stages: - build - test - package
Definizione dei job della pipeline
Definizione di un job di compilazione
build-job: stage: build script: - echo "Hello " | tr -d "\n" > file1.txt - echo "world" > file2.txt - cat file1.txt file2.txt > compiled.txt artifacts: paths: - compiled.txt
Definizione di un job di test
test: stage: test script: cat compiled.txt | grep -q 'Hello world '
Definizione di un job di creazione del pacchetto
package: stage: package script: cat compiled.txt | gzip > packaged.gz artifacts: paths: - packaged.gz
La tua pipeline completa dovrebbe assomigliare a questa
stages: # Elenco delle fasi per i job e loro ordine di esecuzione - build - test - package build-job: stage: build script: - echo "Hello " | tr -d "\n" > file1.txt - echo "world" > file2.txt - cat file1.txt file2.txt > compiled.txt artifacts: paths: - compiled.txt test: stage: test script: cat compiled.txt | grep -q 'Hello world' package: stage: package script: cat compiled.txt | gzip > packaged.gz artifacts: paths: - packaged.gz
Ecco un link al file di configurazione nel nostro progetto di esempio.
Congratulazioni, hai creato la tua prima pipeline di CI.
Per attivare l'integrazione continua (CI) all'interno del nostro progetto, dobbiamo eseguire il push del file .gitlab-ci.yml nel repository. Una volta che questo file si trova nella radice del repository, ogni commit effettuato sul progetto avvierà automaticamente una pipeline di CI. La pipeline iniziale verrà avviata immediatamente dopo aver eseguito il push di questo file sul server.
- Fai clic sull'icona di esecuzione del merge che si trova a sinistra di Esplora file.
- Fornisci un messaggio di commit, come ad esempio "Aggiungere la configurazione della CI".
- Fai clic su Commit e push.
- Quando viene richiesto "Eseguire il commit su un nuovo ramo?" seleziona "No, usa il ramo principale corrente".
- Per tornare al tuo progetto, fai clic sul pulsante Vai al progetto in basso a sinistra.
Congratulazioni, il tuo progetto è ora configurato correttamente per avviare automaticamente una pipeline di CI per ogni commit del codice.
Mentre la pipeline è in esecuzione, puoi monitorarne lo stato nella scheda CI/CD. Questa funzione ti consente di monitorare facilmente l'avanzamento dei tuoi job, incluso il loro stato di esecuzione (ad esempio se sono stati avviati, se hanno superato i test, se ci sono stati errori, ecc.), nonché qualsiasi output generato dagli script dei tuoi job.
- Vai al progetto di GitLab e trova il menu a sinistra.
- Fai clic su CI/CD nel menu e fai clic su Pipeline.
- Nella pagina Pipeline, trova il pulsante della pipeline nella colonna Stato. Fai clic su di esso per aprire il grafico della pipeline.
- Ora puoi osservare i job e i loro rispettivi stati all'interno del grafico della pipeline.
- Per esplorare un job specifico, fai clic su di esso per aprire la console. Questa console visualizza tutti i passaggi eseguiti sulla macchina runner.
- Apri la console dei job del pacchetto per visualizzare i passaggi elaborati dal runner.
- Il job del pacchetto genera un artefatto, puoi scaricarlo facendo clic sul pulsante di download situato a destra.
- Seguendo questi passaggi, puoi monitorare efficacemente lo stato della pipeline, ispezionare i dettagli del job e recuperare eventuali artefatti o pacchetti rilevanti prodotti durante l'esecuzione della pipeline.
Congratulazioni per aver eseguito con successo la tua prima pipeline. La pipeline è riuscita. Hai visualizzato i risultati e scaricato l'artefatto del job.
Modificheremo il valore previsto nel job di test, il quale fallirà così come l'intera pipeline.
- Modifica il job di test cambiando la frase "Hello World" in "hello world" (con lettere minuscole).
- Esegui il commit delle modifiche al codice e procedi alla visualizzazione della pipeline, in modo simile al passaggio 4.
- Dopo aver ispezionato la pipeline, vedrai che il job di prova non è riuscito. Inoltre, il job successivo di creazione del pacchetto non è stato avviato e la pipeline non è riuscita come previsto.
Nel passaggio 5 abbiamo visto che l'errore del job ha provocato la non riuscita dell'intera pipeline. Puoi introdurre la logica nella tua pipeline per determinare quando un errore del job potrebbe causare un errore nell'intera pipeline con i seguenti passaggi:
- Valuta le condizioni in cui si desidera che un errore del job si traduca in un errore della pipeline. Ad esempio, puoi forzare l'errore della pipeline se un job non riesce sul ramo principale o predefinito, e al contempo consentire agli errori dei job su altri rami di procedere con la pipeline.
- Definisci le regole che controllano il comportamento degli errori. Puoi sfruttare variabili come $CI_COMMIT_BRANCH per controllare il ramo corrente e prendere decisioni basate su di esso.
- Imposta le condizioni appropriate e specifica se il job deve essere contrassegnato come allow_failure: false o allow_failure: true.
Come fare
- Aggiungi regole/condizioni if al tuo job di test.
- Utilizza la parola chiave allow_failure impostata su true o false in base al ramo.
test: stage: test script: cat compiled.txt | grep -q 'Hello world' rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH allow_failure: false - if: $CI_COMMIT_BRANCH allow_failure: true
Per semplificare la configurazione della pipeline, puoi sfruttare i modelli di pipeline integrati forniti da GitLab. Questi modelli offrono configurazioni predefinite per casi d'uso comuni, come analisi di sicurezza, deployment AWS, ecc.
Segui questi passaggi per utilizzare i modelli di pipeline integrati:
- Esplora i modelli di pipeline disponibili offerti da GitLab per vari scenari come la compilazione, il test, il deployment e altro ancora. Questi modelli sono disponibili qui.
- Seleziona il modello in linea con le tue esigenze.
- Incorpora il modello nella configurazione della pipeline facendo riferimento ad esso nel file .gitlab-ci.yml. In genere puoi farlo importando il modello con la parola chiave "include" e specificando il percorso o l'URL del file del modello.
In questa guida aggiungeremo l'analisi Code Quality alla nostra configurazione utilizzando il modello Code-Quality.
- Includi il modello di Code Quality nel file .gitlab-ci.yml aggiungendo questo codice sotto il blocco delle fasi.
include: - template: Jobs/Code-Quality.gitlab-ci.yml #
Noterai che un job di Code Quality è stato aggiunto alla tua pipeline. Lo scanner Code Quality analizzerà approfonditamente eventuali modifiche al codice apportate in questo repository e fornirà un feedback utile, evidenziando eventuali problemi di qualità del codice che richiedono attenzione. Questa informazione ti consente di migliorare la qualità complessiva della tua codebase e di ottimizzarne le prestazioni.
È tutto! Con questi passaggi, dovresti essere in grado di iniziare a usare la CI di GitLab e automatizzare i processi di compilazione e test del tuo progetto.
Passaggi successivi
Tutto pronto per iniziare?
Scopri cosa può fare il tuo team grazie alla piattaforma DevSecOps basata sull'IA più completa sul mercato.