1
resposta

Cada job é executado em uma máquina virtual

Olá.

Durante as aulas que abordam os artefatos é mencionado que cada job é executado em uma máquina virtual e que por esse motivo os arquivos não ficam disponíveis para outras rotinas.

Cada vez que declaramos a tag jobs vai ser considerada para executar as rotinas em uma máquina virtual? Ou seja, todas as rotinas que estão dentro da tag jobs serão executadas na mesma máquina virtual?

1 resposta

As entradas em steps são referentes a um único job específico. Então, strategy.matrix definido, arquivos criados, variável definida e outras ações mantidas dentro de um job, "morrem" naquela máquina assim que o job termina.

Note que eu falei job, e não a tag jobs. Falo isso porque jobs tem um ou mais job, e a máquina virtual é criada e destruída no início e fim de cada job. Para evitar confusão, quando eu falo job, me refiro a build e test no exemplo abaixo:

...
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # instruções de compilação executadas aqui!
    ...

  test:
    runs-on: ubuntu-latest
    steps:
      # instruções de teste executadas aqui!

Há exceções a essa regra, obviamente. Por exemplo, Armazenar dados do fluxo de trabalho como artefatos usa a action actions/upload-artifact para armazenar artefatos de um job e a actions/download-artifact para baixar em outro job.