Github 操作回显命令未创建文件

Github actions echo command not creating file

我正在将工作中的 CircleCI 工作流转移到 Github Actions。

我是运行宁:

runs-on: ubuntu-latest

container: 
  image: google/cloud-sdk:latest

我运行以下命令:

echo ${{ secrets.GCLOUD_API_KEYFILE }} > ./gcloud-api-key.json

在运行执行此命令之前,gcloud-api-key.json尚未创建。此命令在 CircleCI 中有效,但在 Github 操作中出现错误:

/__w/_temp/asd987as89d7cf.sh: 2: /__w/_temp/asd987as89d7cf.sh: type:: not found

有人知道这个错误是什么意思吗?

原因是因为我的密钥超过 1 行长。一旦我把它写成一行,它就起作用了。

为了使用超过一行的秘密(比如秘密 jsons),必须将 base64 编码的秘密保存在 Github 中,这样就成为一行。 在 linux 上,编码是通过以下方式完成的:

cat mysecret.json | base64

然后在操作中您需要使用

对其进行解码
echo ${{ secrets.YOUR_SECRET }} | base64 -d > secret.json