Como posso gerar artefatos com nomes distintos para cada ambiente testado ao usar a estratégia de matriz?
Como posso gerar artefatos com nomes distintos para cada ambiente testado ao usar a estratégia de matriz?
Oii.
Quando usamos uma matriz para testar em diferentes ambientes, como versões distintas do Node.js, é comum querermos salvar os artefatos gerados em cada teste. Mas um detalhe importante aqui é garantir que cada artefato tenha um nome único, evitando que um sobrescreva o outro.
Uma forma bem prática de fazer isso é aproveitar as variáveis da matriz no momento de nomear os artefatos. Assim, conseguimos identificar de forma clara qual versão do ambiente gerou cada um deles.
Observe um exemplo de como isso pode ser feito no seu arquivo de workflow no GitHub Actions:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [10, 12, 14]
steps:
- uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: npm install
- run: npm test
- name: Save artifact
uses: actions/upload-artifact@v2
with:
name: my-artifact-node-${{ matrix.node-version }}
path: ./path-to-your-artifact
Perceba que no campo name
usamos a variável ${{ matrix.node-version }}
. Isso faz com que cada artefato seja nomeado com a versão correspondente do Node.js, como my-artifact-node-10
, my-artifact-node-12
e assim por diante.
Essa prática ajuda muito na organização dos arquivos gerados, especialmente quando estamos lidando com múltiplas versões em um mesmo pipeline.
Valeu deu certo aqui!