Как я могу избежать многострочного секрета в рабочем процессе Github? - PullRequest
0 голосов
/ 25 марта 2020

Меня попросили "обработать это программно", и у меня нет возможности изменить или добавить файл учетных данных.

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

...