【发布时间】:2020-07-05 11:47:27
【问题描述】:
我已被指示“以编程方式处理此问题”,但我无法更改或添加凭据文件。
使用 Github Actions,我创建了一个需要 GCloud 身份验证的工作流。不幸的是,该变量似乎在执行 run 命令之前被替换,从而导致产生一堆错误的多行 YAML 文件。
这是 YAML 的 sn-p:
# 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 中也有一个服务帐户/密钥,但我无法访问它。
【问题讨论】:
-
什么是错误,看看你是否需要为一个变量转义
$符号(这样它就不会在早期扩展)。我记得在ansible,你可以简单地使用:{{ variable }} -
command not found: ***... github 日志保护实际内容免受秘密。我确实想要扩展变量,问题是github在处理整个YAML文件之前替换了YAML变量。嗯,我想知道我是否真的需要一个 YAML 转义解决方案而不是命令行
标签: bash github-actions