Меня попросили "обработать это программно", и у меня нет возможности изменить или добавить файл учетных данных.
Используя 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 также есть служебная учетная запись / ключ, но я не могу получить к ней доступ.