gpt4 book ai didi

variables - 我们如何在 gitlab-ci.yml 中使用 'variables' 关键字?

转载 作者:行者123 更新时间:2023-12-02 05:52:34 25 4
gpt4 key购买 nike

我正在尝试使用 Gitlab CI 文档中记录的 variables: 关键字:

来自:https://docs.gitlab.com/ce/ci/yaml/README.html

variables

This feature requires gitlab-runner with version equal or greater than 0.5.0.

GitLab CI allows you to add to .gitlab-ci.yml variables that are set in build environment. The variables are stored in repository and are meant to store non-sensitive project configuration, ie. RAILS_ENV or DATABASE_URL.

variables:   
DATABASE_URL: "postgres://postgres@postgres/my_database"

These variables can be later used in all executed commands and scripts.

The YAML-defined variables are also set to all created service containers, thus allowing to fine tune them.

当我尝试使用它时,我的构建不会运行任何阶段,并且无论如何都会被标记为成功,这是不良 YAML 的好迹象。我将 gitlab-ci.yml 内容粘贴到设置区域的 LINT 工具中,输出错误为:

Status: syntax is incorrect

Error: variables job: unknown parameter PACKAGE_NAME

我使用的 YAML 语法与文档相同,但它不起作用。我无法找到与此相关的任何 Unresolved 错误。以下是我当前的版本和 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 文件中删除此部分会使一切正常工作,因此文件的其余部分也能正常工作。 (当然, undefined variable 会导致脚本错误...)

即使只是将测试变量减少到 PACKAGE_NAME 也会导致同样的中断。

最佳答案

原来的答案不再正确。

原始文档现已保留,现在还有更多方法。变量可以从 GUI、API 创建,也可以在 .gitlab-ci.yml 中定义。

https://docs.gitlab.com/ce/ci/variables/README.html

关于variables - 我们如何在 gitlab-ci.yml 中使用 'variables' 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31844861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com