如何从分叉回购(GitLab)中的父分支导入环境变量?
How to import the environment variables from the parent branch in a forked repo (GitLab)?
我正在设置 Gitlab 运行ner 以通过 SSH 连接到远程服务器,这样我就可以 运行 在物理硬件上进行测试,但是从我的分叉分支启动时作业失败。我将 SSH 密钥作为环境变量保存在父级中,它们不会被分叉的 运行 上的作业 运行ning 拾取。如何从父级导入环境变量?
当我手动将 SSH 密钥作为环境变量添加到我的分叉存储库时,作业成功,但是这是不可扩展的。我尝试将项目和所有相关人员添加到一个公共组中,并在其中设置相同的变量,并启动 Group Runners。似乎如果您从您的个人帐户启动 运行ner,那么您将无法访问必要的变量。
在 .gitlab-ci.yml
文件中,我添加了一些打印输出语句以帮助调试。我在父仓库中将 SSH_PRIVATE_KEY
和 RUNNER_ID
设置为它们所需的值,并在我的分叉分支中未分配。当我的个人帐户 运行 时,我得到空白输出。
gitlab-ci.yml
hardware-1:
image: ubuntu
before_script:
- echo "$SSH_PRIVATE_KEY"
- echo "$RUNNER_ID"
tags:
- hardware
script:
- ssh pi@raspberry "./test-hardware.sh"
分叉回购上的运行器控制台输出。
$ ...
$ Updating certificates in /etc/ssl/certs...
$ 0 added, 0 removed; done.
$ Running hooks in /etc/ca-certificates/update.d...
$ echo "$SSH_PRIVATE_KEY"
$ echo "$RUNNER_ID"
在父分支上,控制台输出实际的SSH_PRIVATE_KEY和RUNNER_ID。如何强制 运行ner 始终从父存储库 运行?
可以保护变量。每当变量受到保护时,它只会安全地传递到受保护分支或受保护标记上的管道 运行。其他管道不会获得任何受保护的变量。
可以通过转到项目的“设置”> CI/CD,然后找到名为“变量”的部分,然后选中“受保护”来添加受保护的变量。
设置后,它们将可用于所有后续管道。
保护分支或标签:
设置 -> 存储库 -> 受保护 branches/tags
我正在设置 Gitlab 运行ner 以通过 SSH 连接到远程服务器,这样我就可以 运行 在物理硬件上进行测试,但是从我的分叉分支启动时作业失败。我将 SSH 密钥作为环境变量保存在父级中,它们不会被分叉的 运行 上的作业 运行ning 拾取。如何从父级导入环境变量?
当我手动将 SSH 密钥作为环境变量添加到我的分叉存储库时,作业成功,但是这是不可扩展的。我尝试将项目和所有相关人员添加到一个公共组中,并在其中设置相同的变量,并启动 Group Runners。似乎如果您从您的个人帐户启动 运行ner,那么您将无法访问必要的变量。
在 .gitlab-ci.yml
文件中,我添加了一些打印输出语句以帮助调试。我在父仓库中将 SSH_PRIVATE_KEY
和 RUNNER_ID
设置为它们所需的值,并在我的分叉分支中未分配。当我的个人帐户 运行 时,我得到空白输出。
gitlab-ci.yml
hardware-1:
image: ubuntu
before_script:
- echo "$SSH_PRIVATE_KEY"
- echo "$RUNNER_ID"
tags:
- hardware
script:
- ssh pi@raspberry "./test-hardware.sh"
分叉回购上的运行器控制台输出。
$ ...
$ Updating certificates in /etc/ssl/certs...
$ 0 added, 0 removed; done.
$ Running hooks in /etc/ca-certificates/update.d...
$ echo "$SSH_PRIVATE_KEY"
$ echo "$RUNNER_ID"
在父分支上,控制台输出实际的SSH_PRIVATE_KEY和RUNNER_ID。如何强制 运行ner 始终从父存储库 运行?
可以保护变量。每当变量受到保护时,它只会安全地传递到受保护分支或受保护标记上的管道 运行。其他管道不会获得任何受保护的变量。
可以通过转到项目的“设置”> CI/CD,然后找到名为“变量”的部分,然后选中“受保护”来添加受保护的变量。
设置后,它们将可用于所有后续管道。
保护分支或标签:
设置 -> 存储库 -> 受保护 branches/tags