2015-08-27 25 views
7

Ho recentemente installato GitLab e sto tentando di utilizzare GitLab CI. Ho abilitato GitLab CI con successo nel mio GitLab Server e ho installato correttamente un Runner CI (su Windows, se questo è rilevante). Ho abilitato un progetto per il Runner di CI di Windows e quando eseguo il commit nel repository viene eseguito il runner e posso vedere le build.Solo un singolo Runner GitLab CI

Ho installato un secondo CI Runner (su Debian) seguendo la documentazione. Riesco a vedere Debian CI Runner è registrato, insieme al Runner CI di Windows. Al Runner di Debian CI è assegnato lo stesso progetto. Tuttavia, quando eseguo il commit nel repository viene eseguito solo il Runner dell'elemento di configurazione di Windows, il Runner dell'elemento della configurazione di Debian non sta tentando di creare.

Che errore ho fatto o quale configurazione aggiuntiva è presente per abilitare questo? Ho già provato a registrare nuovamente il Debian CI Runner senza successo.


Update 1: Il Debian CI Runner è ora in esecuzione, ma le finestre CI Runner non è. Sembra selezionare solo un singolo corridore.

Aggiornamento 2: Aggiornato a "GitLab CI 7.14.1 2dee1b3" ma lo stesso comportamento persiste.

Aggiornamento 3: Aggiunto un terzo corridore su una macchina Linux scientifica. È registrato e assegnato al progetto ma viene eseguito solo un singolo corridore (attualmente il Debian CI Runner).


GitLab CI 7.12.0 e96755c

risposta

7

Quando una build per gitlab CI viene attivata, eseguirà i lavori elencati nel file .gitlab-ci.yml. Pensa a questi lavori come passi indipendenti e concomitanti nella tua build. Questi lavori sono eseguiti da qualsiasi corridore disponibile in grado di completare quel lavoro. Tuttavia, dove penso che ti stia incastrando è che un lavoro sarà completato solo una volta, e dal primo corridore disponibile. Pensa ai corridori come a un pool di risorse, non come passi di costruzione. Avere più corridori consente di eseguire lavori in parallelo.

Se si dispone di un lavoro che si desidera eseguire ogni volta da ogni corridore, provare a utilizzare i tag. Per esempio.:

job1: 
    tags: 
    - windows 
    script: 
    - job command 1 
    - job command 2 

job2: 
    tags: 
    - debian 
    script: 
    - job command 1 
    - job command 2 

Dove job command 1 e job command 2, ecc, sono i passi che ci piace il tuo lavoro da eseguire e windows e debian sono i tag che si assegnano alle corridori. Fondamentalmente stai solo creando lavori identici con tag diversi, un lavoro per ogni corridore. Quindi, è necessario assicurarsi che ogni corridore abbia il tag specificato per il proprio lavoro. Puoi farlo modificando il corridore in gitlab CI.

  1. Vai Runners
  2. Scorrere fino a "Runners attivati ​​per questo progetto"
  3. Cliccare sulla Modifica simbolo
  4. aggiungere il tag al corridore
  5. Fare clic su Salva

See the gitlab YAML readme for more on tags

+0

Grazie per la risposta. Proverò questo e ti faccio sapere. – hmjd

+0

Grazie ancora, questo fa quello che mi serve. – hmjd

+0

Cool, felice ha funzionato per te! Abbiamo un problema simile, testando la nostra build contro diversi ambienti. Finora non ho trovato un modo migliore per fare ciò che evita la duplicazione dei lavori. – Dizzyspiral

0

E 'distribuito come codice sorgente o come un semplice pacchetto omnibus da installare su una delle distribuzioni Linux supportate. Tuttavia, ci sono alcune aree in cui ciò rende piuttosto difficile l'uso, e uno di questi è:

  • Il corridore può eseguire solo un concorrente alla volta. Se si desidera eseguire più o si imposta un nuovo server o si crea un utente aggiuntivo per creare i lavori.

Prova ad usare Docker.

Ciò che è importante è che ogni volta che il progetto viene creato verrà eseguito in un ambiente pulito, senza avanzi da precedenti build. Con pochi semplici comandi non è necessario installare alcuna dipendenza, poiché Docker scaricherà tutto il necessario per eseguire i test.

Spero che questo aiuti.

+0

Non sto tentando di eseguire più build su un singolo runn ER. Ho diversi corridori su macchine diverse. – hmjd

Problemi correlati