parameter-passing - 将 gitlab-ci 中的参数发送到 python 项目

标签 parameter-passing gitlab-ci git-stage

最近我创建了一个项目并将其dockerize。 为了编写 .gitlab-ci.yml,我想准备一个测试阶段来测试我的程序。

在我的Python代码中,我向用户询问用户名和密码, 但因为在 gitlab-ci 中,一切都应该自动执行,我想在 gitlab-ci 中发送用户名和密码,而不是从输入中读取。 如何将静态短语用户名和密码发送到 gitlab-ci 内的 python 代码?

请注意,我不想在 python 代码中使用 sys.args,因为在实际执行中我真的想从用户那里读取它,但只是在 gitlab-ci 中,我想发送一个该程序的特定用户名和密码,以便它可以自动执行。

最佳答案

您可以使用 GitLab 中的环境变量将用户名和密码发送到您的脚本:

https://docs.gitlab.com/ee/ci/variables/#custom-environment-variables

这些变量将在您的 gitlab-ci.yml 文件中可供您的程序使用。访问变量的方式取决于您使用的 shell(cmd、powershell、sh、bash):

https://docs.gitlab.com/runner/shells/#overview

您可以像这样使用它:

myjob:
  stage: test
  script:
    - python myscript.py --username $username --password $password

具体如何将用户名和密码输入到程序中取决于您。如果您不想使用命令行参数,您可以创建一个小帮助程序脚本,通过标准输入发送用户名和密码。另一种选择是添加命令行参数以方便测试您的程序。

关于parameter-passing - 将 gitlab-ci 中的参数发送到 python 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59073049/

相关文章:

C++:通过引用传递或使用私有(private)实例变量

mysql - Docker 无法使用 mysql 链接到未运行的容器

git - 如何将未暂存文件移动到未跟踪文件?

c++ - 将 vector 传递给函数 c++

Python。参数和返回值

bash - 处理未使用的 getopts 参数

jestjs - 从Jest到stdout到GitLab的代码覆盖率

docker - 如何处理 Docker 登录到具有多个并发作业的 Gitlab 容器注册表?

Git 将 "unchanged"文件添加到舞台

git - 为什么 "git index"有这么多名字?