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
我正在将工作中的 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