Github提供secret,其值可以在工作流中使用。不幸的是,secrets的值是受保护的,我们不能很容易地在repo中看到它,也不能在工作流中调试它,因为它被清除了。
有没有办法定义一个"环境变量"?在存储库中,可以很容易地看到和调试?我的用例是配置,可以很容易地修改,如果回购是分叉。
您可以像这样在.env
文件中存储环境变量:
FOO=bar
然后您可以编写代码将该文件中的数据附加到$GITHUB_ENV
:
name: CI
on:
workflow_dispatch:
jobs:
foo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: cat .env >> $GITHUB_ENV
- name: Use the value
run: echo $FOO
对于每个需要从该文件访问环境变量的作业,您需要执行cat .env >> $GITHUB_ENV
(并使用actions/checkout
)。
不要在。env中存储秘密——仅用于存储配置等。
完整代码:https://github.com/brc-dd/env-from-file
您也可以将.env
更改为.env.github
之类的内容,以使事情更有条理。
供参考:您可以将secret作为环境变量传递给内部工作。
我在动作工作流中添加foo作为秘密的示例工作:
name: simple secret
id: secret_env
env:
foo: ${{secrets.>
run: echo $ Foo **
上面的是一个例子,但是忽略代码语法问题,因为这里有注释格式。