目标:
在GitHub Actions中,从shell动态定义提交消息:
- name: Commit changes
uses: EndBug/add-and-commit@v7
with:
message: "added on $(date -I)"
但是,似乎我必须定义一个环境变量,然后使用它。我正在使用How do I set an env var with a bash expression in GitHub Actions?和其他帮助文件,如this,但仍然不知道如何使用我之前定义的这样的环境变量。这就是我尝试过但失败的事情:
- name: Checkout repo
uses: actions/checkout@v2
- run: |
touch sample.js
echo "today=$(date -I)" >> $GITHUB_ENV
- name: Commit changes
uses: EndBug/add-and-commit@v7
with:
message: "added on ${today}"
如何让它工作?
1条答案
按热度按时间lawou6xi1#
如果您想在参数中引用使用
$GITHUB_ENV
环境文件设置的环境变量,则需要使用工作流语法来访问顶级env
键的相应键,如下所示:您可以从正在运行的任务内部将其作为标准环境进行访问,例如:
在这个例子中,表达式
$today
由shell* 展开,shell * 查找名为today
的环境变量。你也可以这样写:在这种情况下,扩展将在
run
命令执行之前由github的工作流引擎执行,因此shell将看到一个看起来像echo "today is 2021-07-14"
的字面命令。您可以使用输出参数完成类似的操作,如下所示:
使用输出参数的粒度更细一些(因为它们由步骤id限定),并且它们不会显示在任务启动的进程环境中。