最近我创建了一个项目并将其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/