Github Action:在步骤之间共享数据
Github Action 各个 Setp 之间是互相独立的,所以假如我们在 A Step 中定义了一个环境变量,在接下来的 Step 中是无法使用的。
那么怎么共享呢?在最新的 Github Action 中,可以通过 Environment files 来实现。
Environment files
它的做法是通过一个环境变量配置文件,在各个Step之间共享自定义环境变量。
官方的例子如下所示:
steps:
- name: Set the value
id: step_one
run: |
echo "action_state=yellow" >> "$GITHUB_ENV"
- name: Use the value
id: step_two
run: |
printf '%s\n' "$action_state" # This will output 'yellow'
echo "action_state=yellow" >> "$GITHUB_ENV"
这段就是关键代码了。
被抛弃的 set-env
如果你在 Google 上搜索过这个问题的话,你可能会搜到这篇文章:GitHub Actions 第15天:在步骤之间共享数据。
这篇文章中提到的 set-env
方法,在后续的 Github Action 中被禁止使用了,详见官方博文:GitHub Actions: Deprecating set-env and add-path commands
在本文撰写时,如果在 Github Action 中没有经过任何配置地去使用 set-env
的话,会直接报错,Step 执行失败。
“Environment files” 的做法也并不麻烦,反而觉得比 set-env
简单很多,所以就使用上面的方法吧。