2016-07-19 104 views
23

Stavo seguendo this tutorial:Acquista Jenkins Pipeline Git SCM con credenziali?

node { 
    git url: 'https://github.com/joe_user/simple-maven-project-with-tests.git' 
    ... 
} 

Tuttavia non dice come aggiungere le credenziali. Jenkins ha una specifica sezione "Credenziali" in cui si definisce il passaggio utente utente & e quindi si ottiene l'ID da utilizzare nei lavori, ma come faccio a utilizzarlo nelle istruzioni della pipeline?

ho provato con:

git([url: '[email protected]:company/repo.git', branch: 'master', credentialsId: '12345-1234-4696-af25-123455']) 

senza fortuna:

stderr: Host key verification failed. 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

C'è un modo configurare le creds in cantiere, o devo mettere SSH-chiavi .ssh di di Jenkin utente Linux/authorized_keys file?

Nel mondo ideale mi piacerebbe avere un repository per lavori di pipeline e chiavi di repo, quindi avviare Docker Jenkins e aggiungere dinamicamente questi lavori e le chiavi lì senza dover configurare nulla in Jenkins Console.

risposta

48

È possibile utilizzare il seguente in una pipeline:

git branch: 'master', 
    credentialsId: '12345-1234-4696-af25-123455', 
    url: 'ssh://[email protected]:company/repo.git' 

Se stai utilizzando l'URL ssh poi le credenziali devono essere nome utente + chiave privata. Se stai utilizzando l'URL clone https invece di quello ssh, le tue credenziali devono essere nome utente + password.

+0

Che risolto, grazie. Non ero a conoscenza del fatto che SSH-url e HTTPS-url richiedessero credenziali diverse con cui lavorare! – Render

+1

è stato utile, ma 'credentialsId' deriva da id in [' /var/lib/jenkins/credentials.xml'](https://stackoverflow.com/a/35603191/432903) come ho dovuto faticare per capirlo su. – prayagupd

+4

@prayagupd, dovresti essere in grado di ottenere l'ID di credenziali dalla pagina delle credenziali ('http: // yourjenkinsinstall/credentials'). Non è necessario trascinare i file di configurazione. –

5

Se si desidera utilizzare le credenziali ssh,

git(
     url: '[email protected]<repo_name>.git', 
     credentialsId: 'xpc', 
     branch: '${branch}' 
    ) 

se si desidera utilizzare le credenziali di nome utente e password, è necessario utilizzare http clone come detto @Serban.

git(
     url: 'https://github.com/<repo_name>.git', 
     credentialsId: 'xpc', 
     branch: '${branch}' 
    ) 
Problemi correlati