Variaveis de ambiente são aquelas variaveis em seu código que são dinamicas. Exemplo do porquê usar variaveis de ambiente com a senha de um db:
Como adicionar isso no workflow:
name: Deployment
on:
push:
branches:
- main
- dev
env:
MONGODB_DB_NAME: action-demo
Isso implica que o MONGO_DB_NAME estará disponivel para todos os jobs no valor de “action-demo” a não ser que um job sobrescreva a variavel.
Também é possivel definir variaveis de ambiente a nivel de job.
Exemplo:
jobs:
test:
env:
MONGODB_CLUSTER_ADDRESS: cluster.net
MONGODB_USERNAME: actions_example
MONGODB_PASSWORD: hash123xyz
PORT:8080
runs-on: ubuntu-latest
steps:
- name: Get Code
uses: actions/checkout@v3
- name: npm start & npx wait-on <http://127.0.0.1>:$PORT #exemplo de como a variavel de ambiente pode ser usada dentro do workflow linuzl
- name: Output information
run: |
echo "MONGODB_USERNAME: ${{ env.MONGODB_USERNAME }}"
Nesse caso, poderia ser definido um banco especifico para casos de testes.
Porém, definir as variaveis diretamente no código vai contra todas as boas práticas de segurança na programação. Para isso o github oferece o SECRETS.
No seu repositório, vá em Settings → Security → Secrets and Variables→ Actions → New repository Secret
Depois de criado você consegue atualizar a variavel, mas não consegue ver seu valor.
