GitHub 使用从 shell 设置的变量的操作
GitHub Actions to use variables set from shell
目标:
在 GitHub 操作中,从 shell:
动态定义我的提交消息
- name: Commit changes
uses: EndBug/add-and-commit@v7
with:
message: "added on $(date -I)"
不过,好像要先定义一个环境变量再使用。我正在关注 and other help files like 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}"
如何让它发挥作用?
如果你想在另一个任务的参数中使用 $GITHUB_ENV
环境文件引用环境变量集,你需要使用工作流语法来访问顶层的适当键 env
键,像这样:
- name: Commit changes
uses: EndBug/add-and-commit@v7
with:
message: "added on ${{env.today}}"
您可以从 运行 任务内部将其作为标准环境访问,例如:
- name: Show an environment variable
run: |
echo "today is $today"
在该示例中,表达式 $today
被 扩展为 shell,
它查找名为 today
的环境变量。你也可以
写:
- name: Show an environment variable
run: |
echo "today is ${{env.today}}"
在这种情况下,扩展将由 github 的工作流程执行
engine before run
命令执行,所以 shell 会看到一个
看起来像 echo "today is 2021-07-14"
.
的文字命令
您可以使用 output parameters 完成类似的操作,如下所示:
- name: "Set an output parameter"
id: set_today
run: |
echo "::set-output name=today::$(date -I)"
- name: Commit changes
uses: EndBug/add-and-commit@v7
with:
message: "added on ${{steps.set_today.outputs.today}}"
使用输出参数更精细一些(因为它们是
通过步骤 id 限定),它们不会出现在环境中
由您的任务启动的进程数。
目标:
在 GitHub 操作中,从 shell:
动态定义我的提交消息 - name: Commit changes
uses: EndBug/add-and-commit@v7
with:
message: "added on $(date -I)"
不过,好像要先定义一个环境变量再使用。我正在关注
- 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}"
如何让它发挥作用?
如果你想在另一个任务的参数中使用 $GITHUB_ENV
环境文件引用环境变量集,你需要使用工作流语法来访问顶层的适当键 env
键,像这样:
- name: Commit changes
uses: EndBug/add-and-commit@v7
with:
message: "added on ${{env.today}}"
您可以从 运行 任务内部将其作为标准环境访问,例如:
- name: Show an environment variable
run: |
echo "today is $today"
在该示例中,表达式 $today
被 扩展为 shell,
它查找名为 today
的环境变量。你也可以
写:
- name: Show an environment variable
run: |
echo "today is ${{env.today}}"
在这种情况下,扩展将由 github 的工作流程执行
engine before run
命令执行,所以 shell 会看到一个
看起来像 echo "today is 2021-07-14"
.
您可以使用 output parameters 完成类似的操作,如下所示:
- name: "Set an output parameter"
id: set_today
run: |
echo "::set-output name=today::$(date -I)"
- name: Commit changes
uses: EndBug/add-and-commit@v7
with:
message: "added on ${{steps.set_today.outputs.today}}"
使用输出参数更精细一些(因为它们是 通过步骤 id 限定),它们不会出现在环境中 由您的任务启动的进程数。