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:
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:
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.