18

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

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

  1. GitLab CI の Web インターフェイスのプライベート変数
  2. 変数のオーバーライド/追加config.toml

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

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

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

私が認識していない他の構文が必要ですか?

私が試してみました:

$PACKAGE_SOURCE
$(PACKAGE_SOURCE)
${PACKAGE_SOURCE}

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

4

1 に答える 1

33

ランナーにWindowsを使用していると思いますか?私自身も同じ問題を抱えていて、以下を機能させることさえできませんでした:

script:
  - echo $MySecret

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

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

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

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

script:
  - echo %MySecret%

ランナーにpowershellを使用している場合、構文は次のようになります$env:MySecret

于 2015-07-24T23:36:29.790 に答える