La gestione del codice sorgente o SCM si riferisce al sistema di controllo versione (VCS) che viene utilizzato per gestire il codice sorgente di un progetto. Jenkins supporta più sistemi SCM tra cui Git, Subversion, Mercurial e molti altri.
Durante la configurazione del progetto, possiamo specificare il repository SCM in cui è archiviato il codice sorgente per il progetto. Jenkins quindi controlla periodicamente il repository per le modifiche. Se rileva nuovi commit o aggiornamenti, attiva automaticamente una build di progetto.
In un Jenkinsfile, possiamo definire il passaggio SCM checkout per recuperare il codice sorgente per la pipeline dal repository SCM specificato. Questo passaggio è di solito il primo passo in un Jenkinsfile, assicurando che il codice sorgente sia disponibile per il resto della pipeline.
Plug -in Step SCM Jenkins
Il plug -in SCM Jenkins SCM consente alle pipeline Jenkins di utilizzare i plugin Jenkins SCM standard per controllare il codice sorgente da una sorgente SCM. Ciò fornisce opzioni di checkout estensibili, specificando le varie fonti SCM, i rami specifici e altro ancora.
Per utilizzare questo plug -in, è necessario installarlo sul controller Jenkins. Apri la dashboard Jenkins e seleziona "Gestisci Jenkins" dal menu a sinistra. Passa alla pagina Gestisci plugin -> Plugin disponibili e cerca "SCM Step".
Usando il passaggio Jenkins SCM
Una volta installato il plug -in SCM, possiamo utilizzare il plug -in SCM checkout come mostrato nel seguente esempio della pipeline:
tubaturaNell'esempio precedente, utilizziamo il passaggio SCM di Checkout per controllare l'origine ed eseguire la build utilizzando il comando Make.
È possibile specificare le varie fonti SCM come la pipeline del codice AWS, Bazaar SCM, Bitkeeper, Mercuria, Open Shift Images, filesystem e altro ancora.
La seguente immagine mostra le fonti SCM accettate per il passaggio del checkout:
Fonte: Documentazione di Jenkins SCM.
L'esempio seguente mostra come è possibile specificare la sorgente SCM e altre opzioni come le credenziali:
Checkout SCM: [$ Classe: 'MercurialScm', Fonte: 'SSH: // [email protected]/utente/repo ', pulito: true, credentialsid:' 1234-5678-abcd '], sondaggio: falseNell'esempio precedente, il blocco SCM checkout specifica SCM da cui il passaggio di pagamento ottiene il codice sorgente.
Definiamo anche la configurazione per SCM di destinazione, inclusi l'URL e le credenziali per il server.
In questo caso, la [$ Class: "MercurialScm"] è definita usando Mercurial SCM per connettersi al repository.
Successivamente, utilizziamo l'opzione di origine per specificare l'URL del repository che è un repository mercuriale ospitato su bitbucket.
Definiamo anche l'opzione pulita che dice a Jenkins di eseguire un checkout "pulito". Ciò consente a Jenkins di scartare eventuali modifiche locali e controllare una nuova copia del repository.
L'opzione CredentialSID specifica un set di ID credenziali per l'autenticazione con il repository di destinazione.
Infine, il sondaggio delle opzioni è impostato su False. Ciò impedisce a Jenkins di sondaggio del repository per le modifiche. Pertanto, Jenkins non attiverà automaticamente una build se vengono rilevati nuovi commit o aggiornamenti nel repository. Dobbiamo attivare manualmente una build o utilizzare altri mezzi (come un webhook) per attivare una build.
Conclusione
Abbiamo esplorato i fondamentali dell'utilizzo del passaggio di checkout SCM in Jenkins per controllare il codice sorgente da un determinato repository.