2015-07-22 23 views
13

Non riesco a scoprire come accedere alle variabili in un build-script fornito dal file gitlab-ci.yml.Come accedere alle variabili in gitlab-ci.yml usando gitlab-ci-multi-runner su windows

ho cercato di dichiarare le variabili in due modi:

  1. variabili private in l'interfaccia web di GitLab CI
  2. override variabile/apennding in config.toml

provo ad accedere al loro nel mio gitlab-ci.yml -file comandi come quello:

msbuild ci.msbuild [...] /p:Configuration=Release;NuGetOutputDir="$PACKAGE_SOURCE" 

dove $PACKAGE_SOURCE è la variabile desiderata (PACKAGE_SOURCE) ma non funziona (non sembra essere stata sostituita). Eseguire lo stesso comando manualmente funziona esattamente come previsto (sostituendo il nome della variabile con il suo contenuto)

C'è qualche altra sintassi richiesta di cui non sono a conoscenza?

ho provato:

$PACKAGE_SOURCE 
$(PACKAGE_SOURCE) 
${PACKAGE_SOURCE} 

PS: Verifica il corridore non solleva problemi, se questo importa.

risposta

22

Suppongo che utilizzi Windows per il tuo corridore? Ho avuto lo stesso problema me stesso e non potuto anche ottenere la seguente al lavoro:

script: 
    - echo $MySecret 

Tuttavia, stavo leggendo this Gitlab CI documentation on variables e capito il problema quando ha detto

Le variabili sono impostati come variabili di ambiente nell'ambiente di costruzione e sono accessibili con i metodi normali utilizzati per accedere a tali variabili

Quali, naturalmente, la maggior parte degli esempi forniti sono per bash. Per Windows, utilizza% var%. Così l'ho cambiato al seguente, che ha funzionato per me. (Confermato guardando l'uscita di generazione.)

script: 
    - echo %MySecret% 

Un avvertimento è credo che questo sia probabilmente influenzata anche dalla shell si sceglie durante la configurazione del corridore, anche se non ho provato quelli.

+0

Questo sembra molto legittimo. Ci proverò la prossima settimana quando tornerò al lavoro. Grazie in anticipo! – nozzleman

+0

Conferma che funziona. Inoltre, se stai usando l'impostazione 'artefatti: nome', la sua interpolazione variabile è ANCHE dipendente dalla piattaforma. –

Problemi correlati