我正在尝试执行以下操作:
echo ${{secrets.key}} > myfile
但不幸的是,这不起作用,因为当我检查时,我的文件将是空的。 如何将 github Secret 的内容保存到文件中?
您可以首先将秘密传递给环境变量,然后将其回显到文件,记住引用环境变量以防止换行破坏命令。
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: print secrets
env:
MY_SECRET: ${{secrets.KEY}}
shell: bash
run: |
echo "$MY_SECRET" >> config.ini
cat config.ini
在执行上述操作之前,请检查
secrets.key
是否确实存在。
您可以将 github 操作秘密写入如下文件中:
- name: write config files
run: |
printf '%s' '${{ secrets.mysecret }}' > some.conf
printf '%s' '${{ secrets.foo }}' > more.conf
这不会将您的秘密泄露到日志文件中,因为 github 操作在记录时会自动编辑每个秘密(带有 3 个星号)。
无需首先将您的秘密放入环境变量中。
请注意,使用
printf
优于 echo
,因为这样您就不会意外地将选项注入到 echo 中。
另请注意,秘密被显式引用,以便秘密中的空格(包括换行符)正确地出现在结果文件中。
当然,如果您的秘密包含单引号,那么您需要采取一些不同的方法,例如base64 对你的秘密或类似的东西进行编码。