variables:ここのGitlab CIドキュメントに記載されているキーワードを利用しようとしています:
FROM: https://docs.gitlab.com/ce/ci/yaml/README.html
変数
この機能には、バージョン 0.5.0 以上の gitlab-runner が必要です。
GitLab CI を使用すると、ビルド環境で設定された .gitlab-ci.yml 変数に追加できます。変数はリポジトリに保存され、機密性の低いプロジェクト構成を保存するためのものです。RAILS_ENV または DATABASE_URL。
variables: DATABASE_URL: "postgres://postgres@postgres/my_database"これらの変数は、後で実行されるすべてのコマンドとスクリプトで使用できます。
YAML で定義された変数は、作成されたすべてのサービス コンテナーにも設定されるため、それらを微調整できます。
使用しようとすると、ビルドはステージを実行せず、とにかく成功とマークされます。これは、YAML が悪いことの良い兆候です。gitlab-ci.yml の内容を LINT ツールの設定領域に貼り付けたところ、出力エラーは次のようになりました。
ステータス: 構文が正しくありません
エラー: 変数ジョブ: 不明なパラメーター PACKAGE_NAME
ドキュメントと同じ YAML 構文を使用していますが、機能しません。これに関連する未解決のバグは見つかりません。以下は私の現在のバージョンと私の gitlab-ci.yml のサニタイズされたバージョンです。
Gitlab バージョン: 7.13.2 オムニバス
Gitlab ランナーのバージョン: 0.5.2
gitlab-ci.yml (サニタイズ済み)
types:
- test
- build
variables:
PACKAGE_NAME: "awesome-django-app"
PACKAGE_SUMMARY: "Awesome webapp backend."
MAJOR_RELEASE: "1"
MINOR_RELEASE: "0"
PATCH_LEVEL: "0dev"
DEV_DB_URL: "db"
DEV_SERVER: "pydev.example.com"
PROD_SERVER: "pyprod.example.com"
TEST_SERVER: "pytest.example.com"
envtest:
type: test
script:
- ". ./testbuild.sh"
tags:
- python2.7
- postgres
- linux
except:
- tags
buildrpm:
type: build
script:
- mkdir -p ~/rpmbuild/SOURCES
- mkdir -p ~/rpmbuild/SPECS
- mkdir -p ~/tarbuild/$PACKAGE_NAME-$MAJOR_RELEASE.$MINOR_RELEASE.$PATCH_LEVEL
- cp $PACKAGE_NAME.spec ~/rpmbuild/SPECS/.
- cp -r * ~/tarbuild/$PACKAGE_NAME-$MAJOR_RELEASE.$MINOR_RELEASE.$PATCH_LEVEL/.
- cd ~/tarbuild
- tar -zcf ~/rpmbuild/SOURCES/$PACKAGE_NAME-$MAJOR_RELEASE.$MINOR_RELEASE.$PATCH_LEVEL.tar.gz *
- cd ~
- rm -Rf ~/tarbuild
- rpmlint -i ~/rpmbuild/SPECS/$PACKAGE_NAME.spec
- echo $CI_BUILD_ID
- 'rpmbuild -ba ~/rpmbuild/SPECS/$PACKAGE_NAME.spec \
--define="_build_number $CI_BUILD_ID" \
--define="_python_version_min 2.7" \
--define="_version $MAJOR_RELEASE.$MINOR_RELEASE.$PATCH_LEVEL" \
--define="_package_name $PACKAGE_NAME" \
--define="_summary $SUMMARY"'
- scp rpmbuild/RPMS/noarch/$PACKAGE_NAME-$MAJOR_RELEASE.$MINOR_RELEASE.$PATCH_LEVEL-$CI_BUILD_ID.noarch.rpm $DEV_SERVER:~/.
tags:
- python2.7
- postgres
- linux
- rpm
except:
- tags
質問:
この値を適切に使用するにはどうすればよいですか?
追加情報:
YAML ファイルからこのセクションを削除すると、すべてが機能するため、ファイルの残りの部分は正常に機能します。(もちろん、未定義の変数はスクリプト エラーにつながります...)
テスト用の変数を PACKAGE_NAME だけに減らすだけでも、同じ中断が発生します。