gpt4 book ai didi

bash - 如何在 Github 工作流程中逃避多行 secret ?

转载 作者:行者123 更新时间:2023-12-04 01:31:51 24 4
gpt4 key购买 nike

我已被指示“以编程方式处理此问题”,但我无法更改或添加凭据文件。

使用 Github Actions,我创建了一个需要 GCloud 身份验证的工作流。不幸的是,该变量似乎在 run 之前被替换了。正在执行的命令,导致产生一堆错误的多行 YAML 文件。

这是 YAML 的一个片段:

   # Setup gcloud CLI
- name: Use Google Cloud Platform
uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
with:
version: '270.0.0'
service_account_email: ${{ secrets.SA_EMAIL }}
service_account_key: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}

- run: cd ui/ && pwd && npm install && npm run test
env:
CI: true
- run: |
echo ${{ secrets.GCP_AUTH_STAGING }} | gcloud auth activate-service-account --key-file=-
gcloud container clusters get-credentials staging --region northamerica-northeast1 --project example-staging
cd ui/ && pwd && npm run build && cd build/ && gsutil cp -r . gs://test.example.com/

我尝试使用 CREDS=$( ${{ secrets.GCP_AUTH_STAGING }} ) 之类的方式转义凭据但这只会导致另一个多线问题。我相信 YAML 变量在执行之前会被替换,而不是作为 env 传递。

如果有人有命令行解决方案,将不胜感激!

请注意,我知道 YAML 中也有一个服务帐户/ key ,但我无法访问它。

最佳答案

我们使用 base 64 编码服务帐户 JSON 并通过环境变量传递它。然后在调用 activate-service-account 之前使用 shell 脚本进行解码。
示例代码:

echo "$GCP_CREDENTIALS" > gcp_credentials_enc.json
cat gcp_credentials_enc.json | base64 -d > gcp_credentials.json

关于bash - 如何在 Github 工作流程中逃避多行 secret ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60840243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com