Come testare Jenkinsfile a livello locale

Come testare Jenkinsfile a livello locale

Quando inizi a creare condutture Jenkin utilizzando Jenkinsfile dichiarativa, è senza sforzo commettere errori nella definizione di sintassi.

È, quindi, una buona pratica controllare e verificare i tuoi Jenkinsfiles prima di impegnarli nei tuoi repository. Questo ti assicura di non finire con molte build non riuscite nel server Jenkins.

Questo tutorial mostrerà vari metodi e tecniche che puoi utilizzare per rivestire e verificare il tuo Jenkinsfile prima di eseguirli sul server.

Il Jenkinsfile

Jenkinsfile è uno strumento potente che ti consente di specificare le istruzioni per le tue build in una sintassi semplice e facile da capire. Esistono due metodi principali per creare un Jenkinsfile:

    1. Usando la sintassi dichiarativa
    2. Usando gli script groovy

Questo tutorial si concentrerà su un articolo scritto in sintassi dichiarativa, in quanto è molto più facile da capire e usare.

Di seguito mostra la sintassi di un semplice dichiarativo Jenkinsfile.

def msg = "Questo è un testo personalizzato"
tubatura
agente qualsiasi
fasi
Stage ('Hello')
Passaggi
script
msg = "Ora la stringa è diversa!!"

echo "$ msg"




Non esamineremo la struttura del file o ciò che ogni blocco nel file sopra rappresenta. Invece, puoi controllare il nostro tutorial Jenkins per esplorare le varie basi di Jenkins, come la Dichiarazione variabile, le fasi di Jenkins, le fasi di Jenkins e altro ancora.

Cosa è fodeggiare e perché è importante?

Il rivestimento si riferisce al processo di controllo del codice sorgente per potenziali problemi o errori. Nella maggior parte dei casi, di solito eseguiamo il rivestimento del codice tramite uno strumento dedicato chiamato Linter.

Un Linter di codice prenderà un codice sorgente di input, lo analizzerà e assicurano che non vi siano potenziali errori nel file. Convaliderà anche i problemi di sintassi e formattazione definiti in una determinata lingua.

Alcuni problemi comuni che i linter possono rilevare includono errori di sintassi, problemi di formattazione e potenziali problemi logici.

Qui è dove si trova il problema quando si tratta di Jenkinsfiles. Una volta modificato un Jenkinsfile, è necessario commettere le modifiche e spingere le modifiche al repository.

Tuttavia, Jenkins è configurato per eseguire una build ogni volta che viene rilevata una modifica in Jenkinsfile. Pertanto, se si commettono un errore nel file e si impegnhi senza test, Jenkins tenterà di costruire il progetto e non riuscirà a causa degli errori nel file della pipeline.

Incontrerai spesso tali errori portano a costruzioni simultanee lente, o persino una pletora di git si impegna a correggere errori di sintassi.

Per prevenire tali errori, è bene usare un linter per verificare che tutto stia funzionando prima di impegnarsi.

Come lanciare un Jenkinsfile

Discutiamo ora come possiamo lanciare il Jenkinfile a livello locale prima di impegnarci.

Metodo 1 - Utilizzo del Linter dichiarativo di Jenkins

Il primo metodo che possiamo usare per abbassare il nostro Jenkinsfile prima di impegnarci è usare la riga di comando.

Accedi nel tuo dashboard Jenkins - Gestisci Jenkins - Jenkins Cli e Donwload The Jenkins CLI Utility.

Troverai il link per scaricare la CLI Jenkins e come eseguire il comando nella prima sezione.


Una volta scaricato, vai nella posizione di Jenkins-cli.File jar ed eseguire il comando fornito sopra.

Il comando dovrebbe elencare possibili comandi che è possibile eseguire sul server come mostrato:

Impostazione di un campione Jenkinsfile

Il prossimo passo è impostare un campione Jenkinsfile di cui abbiamo bisogno e testare la validità. A fini dimostrativi, useremo una semplice sceneggiatura di Hello World come previsto di seguito:

def msg = "Questo è un testo personalizzato"
tubatura
agente qualsiasi
fasi
Stage ('Hello')
Passaggi
script
msg = "Ora la stringa è diversa!!"

echo $ msg




Puoi salvare Jenkinsfile in qualsiasi posizione sul tuo filesystem.

Linking un Jenkinsfile dalla riga di comando

Per lanciare un Jenkinsfile dalla riga di comando, possiamo usare il comando:

$ java -jar jenkins -cli.JAR -S Jenkins_url -Websocket -Linter < Jenkinsfile


Dove Jenkins_url è l'indirizzo del tuo controller Jenkins.

Se il tuo server Jenkins necessita di autenticazione, usa l'opzione -Auth seguita dal nome utente e dalla password come nome utente: password.

Una sintassi di esempio è mostrata di seguito:

$ java -jar jenkins -cli.JAR -S Jenkins_url -Auth Nome utente: password -Websocket Dichiarazione -Linter < Jenkinsfile


Dimostriamo l'output del Linter quando passiamo il suddetto Jenkinsfile.

$ java -jar jenkins -cli.JAR -S http: // localhost: 9001/-auth root: password -websocket -linter < .\Jenkinsfile


Una volta eseguito il comando sopra, il Linter analizzerà Jenkinsfile e producerà eventuali problemi potenziali. Poiché il nostro file ha errori, il Linter ci dirà perché e potenziali correzioni come dimostrato di seguito.


In questo caso, il Linter ci dice che dobbiamo racchiudere il nome variabile sul blocco eco con virgolette.

Possiamo andare avanti e sistemare il nostro file.

def msg = "Questo è un testo personalizzato"
tubatura
agente qualsiasi
fasi
Stage ('Hello')
Passaggi
script
msg = "Ora la stringa è diversa!!"

echo "$ msg"




Una volta risolto, possiamo ripetere il nostro comando Linter:

$ java -jar jenkins -cli.JAR -S http: // localhost: 9001/-auth root: password -websocket -linter < .\Jenkinsfile


Dal momento che non abbiamo errori sul nostro Jenkinsfile, il comando restituirà un messaggio come mostrato:

Jenkinsfile ha convalidato con successo.


E abbiamo testato e verificato con successo il nostro Jenkinsfile è pronto per il commit.

Metodo 2 - Aggiunta di Jenkinsfile Linter al tuo editor

Il secondo metodo comune per testare e verificare il tuo Jenkinsfile è aggiungendo il plugin Jenkins Linter al tuo editor.

Jenkins fornisce Linter per:

    1. Editor Eclipse
    2. Codice VisualStudio
    3. Neovim
    4. Atomo
    5. Editor di testo sublime

Questa sezione dimostrerà come utilizzare il Linter Jenkinsfile sul codice Visual Studio.

Nel codice Visual Studio, premere Ctrl + Shift + K per aprire il menu delle estensioni. Cerca "Jenkins Pipeline Linter".

Seleziona l'estensione "Jenkins Pipeline Linter Connector" e fai clic su Installa.


Una volta installato, apri il tuo Jenkinsfile nel codice Visual Studio e premi Ctrl + Shift + P per aprire la tavolozza di comandi.

Immettere il comando "Convalida Jenkinsfile" e premere Invio per eseguire.

Questo ti spingerà per l'URL di Jenkins Linter.

https: /// pipeline-model-converter/convalida

Immettere il link sopra come mostrato nell'esempio seguente:

http: // localhost: 8080/pipeline-model-converter/Convalida


Se il tuo server richiede l'autenticazione, apri le impostazioni del codice Visual Studio e cerca "Jenkins".

Imposta il nome utente e la password di Jenkins.


Una volta eseguito il comando "Convalida Jenkinsfile", l'estensione analizzerà il tuo Jenkinsfile e mostrerà potenziali problemi.

Conclusione

Hai imparato a usare il linter di Jenkins per testare e verificare il tuo Jenkinsfile sulla tua macchina prima di commetterli. Hai anche imparato come aggiungere il Linter Jenkins al codice Visual Studio per testare il tuo Jenkinsfile dal tuo editor.