Featured image of post 2 - Drops: Azure Pipelines - Estrutura

2 - Drops: Azure Pipelines - Estrutura

Entendendo os STAGE, JOBS, STEP e criando a primeira pipeline

Posso dizer, sem dúvidas, que o mais assustador para alguém que está começando no universo de Devops e se vê diante de uma pipeline complexa, são os termos STAGE, STEP e JOBS. Até que consiga entender qual é a hierarquia deles, a pessoa pode ficar bem perdida. Para ficar mais fácil de entender, a documentação da Microsoft traz vários exemplos e um deles vou reproduzir abaixo. hierarquia-pipeline.yml

    STAGE A:
       JOB 1:
         STEP 1.1
         STEP 1.2
       JOB 2:
         STEP 2.1
         STEP 2.2
    STAGE B:
       ...

exemplo.pipeline.yml

    stages: 
    - stage: Build   
      jobs:   
      - job: BuildJob     
        steps:     
        - script: echo Building! 
    - stage: Test   
      jobs:   
      - job: TestOnWindows     
        steps:     
        - script: echo Testing on Windows!   
      - job: TestOnLinux     
        steps:     
        - script: echo Testing on Linux! 
    - stage: Deploy   
      jobs:   
      - job: Deploy     
        steps:     
        - script: echo Deploying the code!
  • STAGE é a coleção principal que contém todos os Jobs que devem ser executados. Por padrão, os stages nas pipelines são executados na sequência se o estágio anterior terminar com sucesso; caso contrário, a pipeline falhará ou os stages podem ser condicionadas a rodarem com dependência em um determinado estágio usando o dependeOn.
  • JOB é uma coleção de etapas que, em uma pipeline, podemos usar para executar diferentes tipos de testes, builds ou o que for preciso em máquinas ou versões de sistemas operacionais diferentes. Isso porque, pra cada JOB você pode definir um AGENT POOL. Com o Agent Pool você pode escolher o sistema operacional em que a pipeline irá rodar determinado Job, podendo ser em Vms ou até mesmo Containers.
  • STEPS são as sequências de operações dentro de um JOB, e é aqui que quase tudo funciona, pois podemos adicionar TASK, BASH, POWERSHELL, SCRIPT e muito mais.

E não é necessário seguir a estrutura — posso usar somente o job ou o stage em uma pipeline.

Vamos brincar, aí explico outros detalhes da pipeline no exemplo que vou montar. Para isso, vou criar um projeto do zero. Gosto do repositório de exemplos da Microsoft, pois contém exemplos de aplicações de quase todas as linguagens. Vou criar um FORK dela em meu Azure repo. https://github.com/microsoft/devops-project-samples.

comments powered by Disqus
Criado com Hugo
Tema Stack desenvolvido por Jimmy