Jenkins Integrazione con GitHub: come installare il plugin Git?

โšก Riepilogo intelligente

Jenkins L'integrazione con GitHub collega un server di automazione a un repository sorgente, consentendo la compilazione e la verifica automatica di ogni commit. L'installazione del plugin Git, la creazione di un job Freestyle, l'autenticazione tramite token e la registrazione di un webhook completano la connessione.

  • ???? Plugin Foundation: Jenkins viene fornito con un set minimo di funzionalitร , quindi il supporto di terze parti arriva tramite plugin installati da Gestisci Jenkins Pagina dei plugin.
  • ๐ŸŒฟ Git contro il plugin GitHub: Il plugin Git fornisce il codice sorgente Code Opzione di gestione che clona un repository; il plugin GitHub aggiunge la gestione dei webhook e la segnalazione dello stato dei commit.
  • ๐Ÿ’ป รˆ richiesto un repository Git locale: Jenkins delega la clonazione all'eseguibile Git sull'host, quindi un'installazione locale mancante produce il repository URL errore di convalida.
  • ๐Ÿ”‘ Autenticazione tramite token: Nell'agosto del 2021 GitHub ha smesso di accettare le password degli account per le operazioni Git, pertanto i repository privati โ€‹โ€‹richiedono un token di accesso personale o una chiave SSH.
  • ๐Ÿช Attivazione automatica: Un webhook del repository che punta al Jenkins L'endpoint github-webhook avvia una build a ogni push anzichรฉ eseguirla manualmente.
  • ๐Ÿงพ Verifica: L'esecuzione di git โ€“version conferma che l'eseguibile si risolve e Gestisci Jenkins Lo strumento registra il suo percorso.
  • ๏ธ Recupero guasti: Fonte mancante Code Le opzioni di gestione, le credenziali rifiutate e i webhook silenziosi sono la causa principale degli errori di integrazione.

Jenkins Integrazione GitHub

Hai giร  imparato cosa Jenkins รจ e come farlo installalo su a Windows sistemaSupponendo che questi passaggi di base siano stati completati, passeremo ora alla gestione dei plugin.

Jenkins ha un supporto eccezionale per i plugin. Sono disponibili oltre mille plugin di applicazioni di terze parti. Per verificare se Jenkins supporta l'applicazione di terze parti che hai in mente, cerca nella directory dei plugin all'indirizzo https://plugins.jenkins.io/.

Jenkins Integrazione GitHub

Installazione dei plugin in Jenkins

Jenkins Viene fornito con una configurazione piuttosto basilare, quindi รจ necessario installare i plugin richiesti per abilitare il supporto per ogni applicazione di terze parti.

GitHub รจ un repository di codice basato sul web che svolge un ruolo fondamentale nel DevOps. Fornisce una piattaforma comune che consente a piรน sviluppatori che lavorano sullo stesso codice o progetto di caricare e recuperare il codice aggiornato, facilitando cosรฌ l'integrazione continua.

Jenkins รˆ necessario installare il plugin Git prima di poter scaricare il codice da un repository GitHub. I due nomi dei plugin vengono spesso confusi, quindi la tabella seguente li distingue:

Plugin Cosa fornisce รˆ necessario per questa guida?
Plugin Git Migliori Idiota opzione in Origine Code Gestione, clonazione del repository e selezione del ramo Sรฌ, questo รจ quello essenziale.
Plugin GitHub Gestione Webhook, Attivazione hook di GitHub opzione e stato della build riportato ai commit Solo per l'attivazione automatica

Non รจ necessario installare questi plugin se hai giร  accettato i plugin suggeriti durante l' Jenkins configurazione di installazione, poichรฉ il plugin Git fa parte di tale pacchetto. In caso contrario, ecco come installarli e scaricare il codice da un repository GitHub.

Come installare il plugin Git in Jenkins

Di seguito รจ riportato un processo passo passo su come installare il plugin Git in Jenkins:

Passo 1: Apri la tua dashboard.
Clicca sul gestire Jenkins pulsante sul tuo Jenkins pannello di controllo:

Installa il plugin Git in Jenkins

Passo 2: Individua l'opzione plugin.
Fare clic su plugin. Attualmente Jenkins rilascia questa voce รจ etichettata semplicemente plugin; versioni precedenti etichettate con la stessa schermata Gestisci plugin.

Installa il plugin Git in Jenkins

Passo 3: Nella pagina Plugin, apri il Plugin disponibili tab e poi:

  1. Seleziona il Idiota plug-in
  2. Clicchi Installa senza riavviareIl plugin impiega qualche istante per essere scaricato, a seconda della velocitร  della connessione internet, e viene installato automaticamente.
  3. In alternativa puoi scegliere Scarica ora e installa dopo il riavvio, nel qual caso il plugin viene applicato quando Jenkins il prossimo inizia.
  4. Se il plugin รจ giร  presente, appare su Installato nella scheda non viene offerto alcun aggiornamento.

Installa il plugin Git in Jenkins

Passo 4: Una volta installati i plugin, vai a gestire Jenkins > Plugin > InstallatiI tuoi nuovi plugin sono elencati insieme agli altri.

Installa il plugin Git in Jenkins

Con il plugin installato, Jenkins Ora รจ possibile puntare a un repository effettivo.

Come integrare Jenkins Con GitHub

Ora esamineremo il processo di integrazione Jenkins e GitHub su un Windows sistema:

Passo 1) Crea un nuovo lavoro in Jenkins. Apri il Jenkins cruscotto al tuo Jenkins URLdi strumenti adatti, questi http://localhost:8080/e fare clic Nuovo elemento:

Integrare Jenkins Con GitHub

Passo 2) Inserisci il nome dell'articolo, seleziona il tipo di lavoro e fai clic OK. Creeremo un progetto Freestyle come esempio.

Integrare Jenkins Con GitHub

Passo 3) Una volta che fai clic OKLa pagina reindirizza al modulo di configurazione del progetto. Inserisci qui le informazioni del progetto:

Integrare Jenkins Con GitHub

Passo 4) Vedrai a Idiota opzione sotto Fonte Code Management se il plugin Git รจ stato installato in Jenkins:

Integrare Jenkins Con GitHub

Nota: Se l' Idiota l'opzione non appare, reinstalla il plugin, riavvia Jenkinse accedi di nuovo alla dashboard. Il Idiota L'opzione sarร  quindi visibile come mostrato sopra.

Passo 5) Accedi al repository Git URL per scaricare il codice da GitHub.

Integrare Jenkins Con GitHub

Passo 6) Potresti ricevere un messaggio di errore la prima volta che accedi al repository URL. Per esempio:

Integrare Jenkins Con GitHub

Questo accade quando Git non รจ installato sulla macchina in esecuzione Jenkins. Jenkins non include il proprio binario Git; il plugin richiama l'eseguibile Git sull'host. Per installare Git localmente, vai a https://git-scm.com/downloads.

Integrare Jenkins Con GitHub

Scarica il programma di installazione Git appropriato per il tuo Operasistema di ting โ€” in questo caso Windows โ€” e installarlo sulla macchina in esecuzione JenkinsSegui le istruzioni visualizzate sullo schermo per completare l'installazione.

Integrare Jenkins Con GitHub

Passo 7) Jenkins รจ possibile eseguire repository Git una volta che Git รจ installato sulla macchina. Per confermare l'installazione, apri un prompt dei comandi, Il tipo di gite premi Invio. Apparirร  un elenco di opzioni Git:

Integrare Jenkins Con GitHub

:: Confirm the Git executable resolves and report its version
git --version

:: Expected output
git version 2.51.0.windows.1

:: Show the full path Jenkins should record in Global Tool Configuration
where git

Ciรฒ conferma che Git รจ installato sul tuo sistema.

Nota: Se Git รจ giร  installato, aggiungi il git.exe percorso sotto gestire Jenkins > Strumenti (etichettato) Configurazione globale dello strumento (nelle versioni precedenti).

Passo 8) Con tutto a posto, aggiungi il Git URL ai miglioramenti Jenkins di nuovo. Non appare alcun messaggio di errore, il che conferma la Jenkins Integrazione Git:

Integrare Jenkins Con GitHub

Git รจ ora configurato correttamente sul tuo sistema. Un repository pubblico verrร  clonato a questo punto, ma per un repository privato sono ancora necessarie le credenziali, che rappresentano il passaggio successivo.

Come autenticare Jenkins Con un token di accesso personale di GitHub

GitHub ha smesso di accettare le password degli account per le operazioni Git nell'agosto 2021. Fornire un nome utente e una password in Jenkins pertanto fallisce contro qualsiasi repository privato con un errore di autenticazione, anche quando le stesse credenziali accedono al sito web di GitHub. Un token di accesso personale sostituisce la password e Jenkins Lo memorizza nel proprio archivio delle credenziali anzichรฉ nella configurazione del lavoro.

Innanzitutto, crea il token su GitHub:

  1. In GitHub, apri Impostazioni > Impostazioni sviluppatore > Token di accesso personali.
  2. Scegli un a grana fine token ove possibile, perchรฉ puรฒ essere limitato a un singolo repository o a un classico token, se la vostra organizzazione ne richiede ancora uno.
  3. Concedi l'accesso in lettura al contenuto del repository. Aggiungi l'accesso in scrittura allo stato del commit solo quando lo desideri. Jenkins per riportare i risultati della build sui commit.
  4. Imposta una data di scadenza e copia immediatamente il token: GitHub lo visualizzerร  una sola volta.

Quindi registra il token all'interno Jenkins:

  1. Vai su gestire Jenkins > Credenziali > Sistema > Credenziali globali e fare clic su Aggiungi credenziali.
  2. Seleziona Nome utente con password come il tipo. Inserisci il tuo nome utente GitHub e incolla il token nel campo della password.
  3. Assegna alla voce un ID chiaro come github-pat in modo che sia riconoscibile nelle schermate di configurazione del lavoro.
  4. Ritorno al lavoro, aperto Fonte Code Gestione > Gite selezionare la nuova credenziale da Credenziali cadere in picchiata.

L'errore di convalida rosso sotto il repository URL scompare una volta Jenkins puรฒ autenticarsi. Due note pratiche vale la pena ricordare. Primo, i token scadono; un lavoro che รจ stato eseguito in modo affidabile per mesi e improvvisamente fallisce al checkout รจ quasi sempre dovuto a un token scaduto piuttosto che a un repository danneggiato. Secondo, una chiave SSH รจ un'alternativa valida: aggiungi la chiave privata come Nome utente SSH con chiave privata credenziale e utilizzare il git@github.com:owner/repo.git URL modulo anzichรฉ il modulo HTTPS.

Come innescare Jenkins Compilazione automatica tramite webhook di GitHub

Il lavoro creato sopra deve ancora essere avviato manualmente, il che vanifica lo scopo dell'integrazione continua. Un webhook colma questa lacuna: GitHub invia una richiesta HTTP a Jenkins ad ogni spinta, e Jenkins avvia immediatamente la compilazione.

Jenkins deve essere raggiungibile da GitHub affinchรฉ funzioni. Su un laptop con localhost:8080 non lo รจ, quindi entrambi gli host Jenkins su un pubblico URL oppure esporlo temporaneamente tramite un servizio di tunneling durante i test.

  1. Installa il plugin GitHub. Torna a gestire Jenkins > Plugin > Plugin disponibili e installare GitHubQuesto aggiunge l'opzione di attivazione che il plugin Git da solo non fornisce.
  2. Abilita il trigger sul lavoro. Apri la configurazione del lavoro, scorri fino a Trigger di builde spuntare Trigger di hook GitHub per il polling GITScm.
  3. Aggiungi il webhook su GitHub. Nel repository, apri Impostazioni > Webhook > Aggiungi webhook.
  4. Imposta il carico utile URL alla tua Jenkins indirizzo seguito da /github-webhook/La barra finale รจ importante.
  5. Imposta il tipo di contenuto a application/json e scegli Solo l'evento di spinta.
  6. Salva e prova. GitHub invia un ping immediatamente. Un segno di spunta verde sotto Consegne recenti si intende Jenkins l'ho accettato.
# Payload URL format for the GitHub webhook
https://jenkins.example.com/github-webhook/

# Content type
application/json

# Verify from the Jenkins host that the endpoint answers
curl -I https://jenkins.example.com/github-webhook/

Esegui un commit per confermare la chiusura del ciclo. Il job dovrebbe apparire nella coda di build entro pochi secondi senza alcuna azione manuale. Se non succede nulla, apri il webhook in GitHub e leggi il Consegne recenti codice di risposta: un 403 di solito punta a Jenkins impostazioni di sicurezza che bloccano l'accesso anonimo all'endpoint, mentre un timeout significa che GitHub non puรฒ raggiungere l'endpoint Jenkins URL affatto.

Una volta che le build si attivano automaticamente, l'ostacolo rimanente รจ solitamente rappresentato da una manciata di errori ricorrenti.

Uncommon Jenkins Errori di integrazione con GitHub e relative soluzioni

Quasi tutte le integrazioni fallite rientrano in una delle categorie seguenti, e ognuna presenta un sintomo specifico che ne indica direttamente la causa.

  • Non รจ presente l'opzione Git sotto "Codice sorgente". Code Management: Il plugin Git non รจ installato o non รจ caricato. Reinstallalo da gestire Jenkins > Plugin, ricomincia Jenkinse ricaricare la pagina di configurazione del lavoro.
  • โ€œImpossibile connettersi al repositoryโ€ su un repository pubblico URL: Git manca da Jenkins host. Installa Git, quindi conferma con git --version e registrare il percorso sotto gestire Jenkins > Strumenti.
  • Autenticazione non riuscita su un repository privato: รˆ in uso una password per l'account. Sostituiscila con un token di accesso personale come descritto sopra, oppure passa a una chiave SSH.
  • Le build non iniziano mai dopo un push: sia la Attivazione hook di GitHub la casella di controllo non รจ selezionata oppure GitHub non riesce a raggiungere Jenkins URL. Controlla il registro di consegna del webhook nelle impostazioni del repository.
  • รˆ stato creato il ramo sbagliato: , il Specificatore di ramo detiene ancora il default */master mentre il repository utilizza mainAggiornare lo specificatore in modo che corrisponda.
  • Il checkout funzionava ieri, ma oggi non funziona: Il token di accesso personale รจ scaduto. Generane uno nuovo e aggiorna le credenziali memorizzate.

Controlla anche: Migliori Jenkins Alternative (Open Source e a pagamento) e Conduttura CI/CD una guida dettagliata che si basa sul collegamento stabilito qui.

DOMANDE FREQUENTI

Sรฌ. Il plugin Git clona da qualsiasi host Git, quindi il Sorgente Code Le fasi di gestione sono identiche. Solo la configurazione del webhook รจ diversa e GitLab o dedicato Bitbucket I plugin forniscono trigger specifici per l'host e report sullo stato.

Per qualsiasi cosa che vada oltre una dimostrazione, sรฌ. Jenkinsil file memorizza il conduttura definizione nel repository stesso, quindi i passaggi di build sono versionati e rivisti insieme al codice invece di vivere solo nel Jenkins UI.

AI Gli assistenti riassumono i log di compilazione falliti, propongono il commit probabilmente responsabile e abbozzano i passaggi della pipeline a partire da una struttura di repository. RevEsamina attentamente ogni suggerimento prima di applicarlo, in particolare quelli relativi alle qualifiche.

No. L'IA accelera la diagnosi e la creazione della configurazione, ma l'orchestrazione, la pianificazione e la traccia di controllo richiedono comunque un server di build. Considera l'IA come un assistente sovrapposto a Jenkins, non un sostituto.

Sรฌ. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. Sondaggio SCM In Build Triggers controlla il repository a intervalli regolari utilizzando la sintassi cron. Funziona anche dietro un firewall, ma spreca richieste e ritarda le build, quindi รจ preferibile utilizzare i webhook. Jenkins รจ raggiungibile.

Riassumi questo post con: