在自托管的运行器机器上运行Github actions时,如何在我的Github action .yaml脚本中访问已设置在该机器上的现有自定义环境变量?我已经设置了这些变量并重新启动了运行器虚拟机多次,但在我的脚本中使用$VAR语法无法访问它们。
./run.sh
命令:# 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
$TEST
访问变量,并且在运行env
时它也会出现: job:
runs-on: self-hosted
steps:
- run: env
- run: echo $VAR
etc/profile.d/<filename>.sh
中,但是在运行./run.sh
命令之前,每次都必须更新shell以使其了解新的环境变量:例如(linux)使用HTTP_PROXY
变量:。# 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
$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
"将保留,但请记住,每次想要启动runner之前,您都必须更新shell,然后执行./run.sh
命令。至少这是我用于此测试的EC2实例的工作方式。"
这句话的意思是“”。runsvc.sh
中更改shebang(顶部行)为#!/bin/bash --login
,以确保shell获取你在.profile
中配置的任何环境变量。
run: env
命令时,是否会在控制台上打印$VAR?(请参见Github Runner上的Workflow example和run)。如果是,请尝试使用${{ env.VAR }}
。 - GuiFalourd/etc/profile.d/
中使用脚本来设置它们吗? - frennky