Я пытаюсь динамически извлечь секрет GitHub с помощью GitHub Actions во время выполнения:
Допустим, у меня есть два секрета GitHub:
- SECRET_ORANGES: «Это оранжевый secret "
- SECRET_APPLES:" Это секрет Apple "
В моем GitHub Action у меня есть другая переменная env, которая будет отличаться между ветвями
env:
FRUIT_NAME: APPLES
По сути, я хочу найти способ сделать некоторую подстановку переменных, чтобы получить правильный секрет. Поэтому на одном из моих детских заданий я хочу сделать что-то вроде:
env:
FRUIT_SECRET: {{ 'SECRET_' + env.FRUIT_NAME }}
Я безуспешно пробовал следующие подходы:
secrets['SECRET_$FRUIT_NAME'] }}
Я даже попробовал более простой подход без конкатенации просто попытаться заставить его работать
secrets['$FRUIT_NAME'] }}
и
{{ secrets.$FRUIT_NAME }}
Ничего из вышеперечисленного не сработало.
Извините, если я не очень хорошо объяснил это. Я пытался сделать мой пример максимально простым.
У кого-нибудь есть идеи, как этого добиться?
В качестве альтернативы я пытаюсь хранить секреты в каждой ветке. основа
Например:
В customer1
кодовая ветвь: SECRET_CREDENTIAL="abc123"
В customer2
кодовая ветвь: SECRET_CREDENTIAL="def456"
Тогда я может получить правильное значение для SECRET_CREDENTIAL
в зависимости от того, в какой ветке я нахожусь.
Спасибо!
Обновление: я немного ближе к тому, чего пытаюсь достичь:
name: Test
env:
CUSTOMER: CUSTOMER1
jobs:
build:
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ env.CUSTOMER }}_AWS_ACCESS_KEY_ID
steps:
- uses: actions/checkout@v2
- run: |
AWS_ACCESS_KEY_ID=${{ secrets[env.AWS_ACCESS_KEY_ID] }}
echo "AWS_ACCESS_KEY_ID = $AWS_ACCESS_KEY_ID"