Configurazione del lavoro focalizzata con il plugin Jenkins DSL

Le organizzazioni stanno sempre più adottando Jenkins per automatizzare i processi di compilazione e test, rendendo difficile la gestione manuale dei lavori di Jenkins. La buona notizia è che il plugin Jenkins DSL consente di definire i lavori di Jenkins utilizzando una sintassi specifica del dominio (DSL).

Jenkins DSL consente di archiviare i lavori nei sistemi di controllo versione, condividerli con altri utenti e generare nuovi lavori da modelli. E in questo tutorial, imparerai come sfruttare il plugin Jenkins DSL per aiutare nell’automazione dello sviluppo delle applicazioni.

Continua a leggere, così non dovrai mai cliccare attraverso l’interfaccia utente di Jenkins per creare un lavoro tediosamente!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri seguirla, assicurati di avere quanto segue.

  • A Linux machine – This guide uses Ubuntu 20.04.
  • Java 11+ e Jenkins installati sulla tua macchina Linux.
  • Pipeline: lavoro per aggiungere la suite di plugin di Pipeline utilizzati per implementare e integrare le pipeline di delivery continue in Jenkins.

Installazione del plugin Jenkins DSL

Mantenere la coerenza tra i lavori può essere difficile, ma il plugin Jenkins DSL risolve questo problema. Come? Consentendo di definire lavori in una forma programmatica, in un file leggibile dall’umanità.

Ma prima di creare lavori, dovrai installare prima il plugin Jenkins DSL:

1. Accedi al tuo server Jenkins e esegui il seguente comando per verificare di avere la versione richiesta di Java installata e che il servizio Jenkins sia in esecuzione.

java -version && systemctl status jenkins

Se visualizzi un output simile a quanto segue, sei pronto per installare il plugin Jenkins DSL.

Checking Java version and Jenkins status

2. Successivamente, apri il tuo browser web preferito e vai su http://indirizzo_ip_del_tuo_server:8080/pluginManager/available. Sostituisci indirizzo_ip_del_tuo_server:8080 con l’effettivo indirizzo IP e numero di porta del tuo server Jenkins.

3. Infine, installa il plugin Jenkins DSL con il seguente:

  • Come mostrato di seguito, digita Job DSL nella casella di ricerca in alto a destra.

Se hai già installato il plugin Job DSL e aggiornato da una versione precedente, gli script Job DSL non appariranno nell’elenco durante la ricerca di Job DSL. Puoi navigare su http://indirizzo_ip_del_tuo_server:8080/pluginManager/installed per verificare se il plugin Job DSL è presente.

  • Seleziona la casella accanto all’opzione Job DSL.
  • Fai clic su Installa senza riavvio in fondo per installare il plugin Jenkins Job DSL.
Installing the Jenkins DSL plugin

L’interfaccia utente di Jenkins ti mostrerà una barra di avanzamento durante l’installazione del plugin. Una volta completata l’installazione, vedrai i messaggi di successo simili a quelli sotto.

Viewing Jenkins DLS Plugin Installation Progress

Creare un lavoro Jenkins Seed Utilizzando il plugin Jenkins DSL

Ora che hai installato il plugin Jenkins DSL, sentiti libero di creare un lavoro Jenkins seed. Scrivi uno script di base Job DSL e incorpora lo script in un lavoro Jenkins seed. Creerai un lavoro in stile libero che stampa un messaggio ‘Hello World!’ sulla console di Jenkins.

Per incorporare uno script Job DSL in un job di seed Jenkins:

1. Vai alla tua Dashboard di Jenkins e clicca su Nuovo elemento nella barra laterale sinistra. Il tuo browser ti reindirizzerà a una pagina in cui puoi creare un nuovo elemento (passaggio due).

Adding a New Item

2. Successivamente, crea un nuovo elemento con le seguenti impostazioni:

  • Inserisci un nome elemento, come mostrato di seguito. Ma il nome dell’elemento è impostato su seed in questo tutorial.
  • Seleziona Progetto Freestyle (un job di compilazione, script o pipeline ripetibile) dalle opzioni sottostanti.
  • Fai clic su OK in fondo per creare il nuovo elemento e il tuo browser verrà reindirizzato alla pagina di configurazione del nuovo elemento.
Creating seed job

3. Mantieni le impostazioni predefinite per tutte le altre sezioni nella pagina di configurazione del nuovo elemento.

Scorri verso il basso fino alla sezione Compilazione, fai clic sul pulsante a discesa Aggiungi passo di compilazione e seleziona Process Job DSLs. Ciò apre un’opzione in cui fornirai uno script DSL (passaggio quattro).

Selecting process job DSLs

4. Ora, seleziona l’opzione Usa lo script DSL fornito, come mostrato di seguito, e popola il seguente blocco di codice nel campo.

Questo blocco di codice è una definizione di job freestyle chiamato jenkins-job-demo-1 che utilizza il passo shell per stampare un messaggio “Hello World”. Il nome del job è ciò che apparirà nell’interfaccia utente di Jenkins.

// Sets the API method you want to use (job)
job('jenkins-job-demo-1') { // Sets the name of the job to jenkins-job-demo-1
	// Define what the job does
  steps {
		// Prints a message
    shell('echo Hello World! This job is working!!')
  }
}

Ci sono molti metodi disponibili per creare diversi tipi di lavori Jenkins, che puoi trovare nella documentazione ufficiale.

Providing the DSL Script

5. Fai clic su Salva nella parte inferiore della pagina per salvare la configurazione del nuovo elemento (seed).

Saving Configuration

6. Infine, vai alla tua Dashboard di Jenkins per verificare che il lavoro seed creato esista, come mostrato di seguito.

Verifying the seed Job

Esecuzione di un lavoro seed

Hai creato e verificato con successo il lavoro seed. Ma come puoi sapere se il lavoro funziona? Eseguirai il lavoro seed con lo script DSL fornito nel passaggio quattro della sezione “Creazione di un lavoro seed Jenkins utilizzando il plugin Jenkins DSL”.

1. Sulla tua Dashboard di Jenkins, fai clic sul lavoro seed per accedere alla pagina di configurazione.

Navigating into the seed Job Page

2. Successivamente, fai clic su Esegui ora nella barra laterale sinistra per avviare il lavoro.

Running the Seed Job

3. Premi F5 per aggiornare la pagina. Vedrai comparire una nuova build nella sezione Cronologia build con uno stato di successo (spunta verde) in basso a sinistra, come mostrato di seguito.

Questo output indica che il lavoro seed è stato eseguito con successo, creando un nuovo lavoro Jenkins (jenkins-job-demo-1) nella sezione Elementi generati.

Viewing the See Job Works and Generated a New Job

4. Ora, vai alla tua Dashboard di Jenkins. Come mostrato di seguito, vedrai il nuovo lavoro Jenkins (jenkins-job-demo-1) creato dal lavoro seed.

Fai clic sul lavoro appena generato per accedere alla sua pagina di configurazione.

Verifying See Job’s Generated Job

5. Fai clic su Esegui ora per avviare il lavoro generato (jenkins-job-demo-1).

Running the Generated Job (jenkins-job-demo-1)

6. Infine, clicca sul pulsante freccia in giù accanto alla build riuscita nella sezione Cronologia build, come mostrato di seguito. Scegli “Output della console” dal menu contestuale per visualizzare l’output del lavoro.

Accessing Console Output of the Generated Job (jenkins-job-demo-1)

Se il lavoro generato funziona, vedrai il messaggio che dice Hello World! This job is working!!, come mostrato di seguito, che è il messaggio che hai definito nello script Job DSL.

A questo punto, hai creato e eseguito con successo un lavoro Jenkins utilizzando il plugin Job DSL!

Viewing Console Output

Creazione di un lavoro per una pipeline CI/CD utilizzando il plugin Jenkins DSL

Fino a ora, hai imparato come creare e eseguire un lavoro Jenkins freestyle utilizzando il plugin Job DSL. Automatizzerai la parte non umana del processo di sviluppo software creando un lavoro Jenkins per una pipeline CI/CD.

In particolare, creerai un lavoro che preleva il codice da un repository GitHub, compila il codice ed esegue i test di unità.

Per creare un lavoro Jenkins per la pipeline CI/CD:

1. Vai a http://your_server_ip:8080/job/seed/configure nel tuo browser web per configurare il tuo lavoro seed. Sostituisci your_server_ip con l’indirizzo IP del tuo server Jenkins e sostituisci seed con il nome del tuo lavoro.

2. Successivamente, scorri verso il basso nella sezione Build, trova il campo Script DSL e sostituisci il contenuto esistente con il codice seguente.

job('jenkins-job-demo-2') {
    steps {
        shell('echo Hello World!')
    }
}

pipelineJob('github-demo') {
    definition {
        cpsScm {
            scm {
                git {
                    remote {
                        github('jenkinsci/pipeline-examples')
                    }
                }
            }
            scriptPath('declarative-examples/simple-examples/environmentInStage.groovy')
        }
    }
}

Fai clic su Salva una volta aggiunto il codice per salvare le modifiche.

Providing DSL Script for a Pipeline

3. Fare clic su “Build Now” nella barra laterale sinistra nella schermata successiva per eseguire nuovamente il job di base, come mostrato di seguito. Nella sezione “Cronologia Build” (in basso a sinistra), vedrai che il job di base è stato eseguito con successo.

Clicca sulla nuova build (#2) per accedere alla pagina di configurazione della build.

Rerunning the seed Job

4. Ora, vai alla “Console Output” della nuova build. Vedrai un messaggio “Added items” e il nome del nuovo job, come mostrato di seguito.

Questo output indica che il nuovo job della pipeline è stato aggiunto con successo.

Verifying the New Pipeline Job was Added Successfully

5. Torna alla dashboard di Jenkins e vedrai il nuovo job della pipeline aggiunto (jenkins-job-demo-2) nell’elenco dei jobs. Clicca su quel nuovo job della pipeline per accedere alla pagina di configurazione del job.

Verifying the New Jenkins Job Exists

6. Infine, fai clic su “Build Now” per eseguire il nuovo job della pipeline. Vedrai che il job è stato eseguito con successo, come indicato nella sezione “Cronologia Build”.

Clicca sulla freccia a discesa accanto al job e seleziona “Console Output”.

Running the New Jenkins Job

Nel “Console Output” qui sotto, puoi vedere l’output del job, che Jenkins ha clonato con successo il repository, compilato il codice e eseguito i test unitari.

Viewing Console Output of the Pipeline Job

Conclusione

In questo tutorial, hai imparato come creare job di Jenkins con il plugin Job DSL. Hai toccato il miglioramento dello sviluppo dell’applicazione creando una pipeline CI/CD con il plugin Jenkins Pipeline.

Il plugin Job DSL e il plugin Jenkins Pipeline lavorano fianco a fianco per offrire un modo potente per gestire i lavori di Jenkins e le pipeline di build. Perché non configurare questi plugin per creare pipeline di build sofisticate che attivano automaticamente i lavori di Jenkins come parte del processo di build?

Source:
https://adamtheautomator.com/jenkins-dsl/