1

在自托管运行器机器上运行 Github 操作时,如何在我的 Github 操作 .yaml 脚本中访问已在机器上设置的现有自定义环境变量?

我已经设置了这些变量并多次重新启动了运行器虚拟机,但是在我的脚本中使用 $VAR 语法无法访问它们。

4

1 回答 1

0

如果您只想为一次运行export设置一个变量,您可以在运行命令之前在 Github 存储库上配置自托管运行器时添加一条./run.sh命令:

带有TEST变量的示例(linux):

# Create the runner and start the configuration experience
$ ./config.sh --url https://github.com/owner/repo --token ABCDEFG123456
# Add new variable
$ export TEST="MY_VALUE"
# Last step, run it!
$ ./run.sh

这样,您将能够通过 using 访问该变量$TEST,并且它也会在运行时出现env

  job:
    runs-on: self-hosted
    steps:
      - run: env
      - run: echo $VAR

在此处输入图像描述


如果要永久设置变量,可以etc/profile.d/<filename>.sh按照上面@frennky 的建议将文件添加到 中,但您还必须更新 shell 以使其每次都知道新的环境变量,然后再运行./run.sh命令:

带有HTTP_PROXY变量的示例(linux):

# Create the runner and start the configuration experience
$ ./config.sh --url https://github.com/owner/repo --token ABCDEFG123456
# Create new profile http_proxy.sh file
$ sudo touch /etc/profile.d/http_proxy.sh
# Update the http_proxy.sh file
$ sudo vi /etc/profile.d/http_proxy.sh
# Add manually new line in the http_proxy.sh file
$ export HTTP_PROXY=http://my.proxy:8080
# Save the changes (:wq)
# Update the shell
$ bash
# Last step, run it!
$ ./run.sh

这样你也可以通过 using 访问变量,$HTTP_PROXY运行时也会出现env,同上。

  job:
    runs-on: self-hosted
    steps:
      - run: env
      - run: echo $HTTP_PROXY
      - run: |
          cd $HOME
          pwd
          cd ../..
          cat etc/profile.d/http_proxy.sh

etc/profile.d/<filename>.sh持续存在,但请记住,每次要启动运行程序时,在执行命令之前都必须更新 shell 。./run.sh至少它是如何与我用于此测试的 EC2 实例一起工作的。

在此处输入图像描述

参考

于 2022-02-21T20:53:19.727 回答