web-dev-qa-db-ja.com

Windowsでgitlab-ci-multi-runnerを使用してgitlab-ci.ymlの変数にアクセスする方法

gitlab-ci.yml-ファイルによって提供されるビルドスクリプトで変数にアクセスする方法がわかりません。

私は2つの方法で変数を宣言しようとしました:

  1. Webのプライベート変数-GitLabCIのインターフェース
  2. config.tomlの変数オーバーライド/アペンディング

gitlab-ci.yml- filesコマンドで次のようにアクセスしようとしています。

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

ここで、$PACKAGE_SOURCEは目的の変数(PACKAGE_SOURCE)ですが、機能しません(置き換えられていないようです)。同じコマンドを手動で実行すると、期待どおりに機能します(変数名をその内容に置き換えます)

私が知らない必要な他の構文はありますか?

私が試してみました:

$PACKAGE_SOURCE
$(PACKAGE_SOURCE)
${PACKAGE_SOURCE}

PS:これが重要な場合、ランナーを検証しても問題は発生しません。

16
nozzleman

ランナーにWindowsを使用していると思いますか?私自身も同じ問題を抱えていて、次の問題を解決することすらできませんでした。

script:
  - echo $MySecret

ただし、Gitlabのドキュメントを読むと、 ジョブスクリプトの環境変数の構文 :のエントリがあります。

環境変数にアクセスするには、ランナーのシェルの構文を使用します

与えられた例のほとんどはbashランナー向けであるため、これは理にかなっています。私のWindowsランナーの場合、%variable%を使用します。

スクリプトを次のように変更しました。 (ビルド出力を見て確認しました。)

script:
  - echo %MySecret%

ランナーにPowerShellを使用している場合、構文は$env:MySecretになります。

29
Jim