Como faço para usar segredos nas ações do Github?
Eu sinto que esta é uma pergunta realmente estúpida, mas não consigo descobrir. Eu configurei um projeto node.js realmente simples com API_KEYum segredo.
Na ação do nodejs yml , tenho o seguinte:
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }}
env:
API_KEY: ${{ secrets.API_KEY }}
- run: export
- run: npm ci
- run: npm run build --if-present
- run: npm test
API_KEYnão apareceexport como eu esperava nem aparece quando eu console.log(process.env).
De acordo com a documentação , isso deve funcionar como está. Sinto que estou perdendo algo realmente simples.
Este não é um fork como sugerido nesta questão stackoverflow .
O que estou perdendo para obter a API_KEY disponível em meu script de nó?
Respostas
As variáveis de ambiente podem ser definidas em três níveis:
- Globalmente: um mapa de nível superior chamado env
- Em um nível por trabalho: em jobs.
.env - Em um nível por etapa: em jobs.
.steps.env
A preferência é dada à variável mais específica disponível. Por exemplo:
env:
VAR: I am global
jobs:
job1:
steps:
- run: echo "$VAR" # "I am global" job2: env: VAR: I am on the job level steps: - run: echo "$VAR" # "I am on the job level"
- env:
VAR: I am on the step level
run: echo "$VAR" # "I am on the step level" - run: echo "$VAR" # "I am on the job level"
Para definir uma variável de ambiente em uma etapa, dinamicamente, e torná-la disponível para outras etapas, você deve usar um arquivo de ambiente ( mudou recentemente com o uso de comandos de fluxo de trabalho, que agora estão obsoletos para variáveis de ambiente):
steps:
- name: Set the variable
run: echo "foo=bar" >> "$GITHUB_ENV" - name: Print the variable run: echo "$foo" # bar
A forma antiga, agora obsoleta, seria definida assim:
run: echo "::set-env name=foo::bar"
mas agora isso aciona um aviso de suspensão de uso.