Guia Completo: Filtros de Execução em Jobs com Base em Commits

Entenda como aplicar filtros de execução para jobs de automação com base em commits, aumentando a eficiência do seu fluxo de trabalho.

Filtros de Execução em Jobs: Um Guia Prático

Os filtros de execução em jobs são uma ferramenta poderosa para otimizar o processo de automação. Neste tutorial, vamos explorar como aplicá-los com base em commits, permitindo que você execute jobs apenas quando necessário, economizando recursos e tempo.

O que são Filtros de Execução?

Filtros de execução são condições que determinam se um job deve ou não ser executado. Eles podem ser baseados em diversos critérios, como branch do repositório, mensagens de commit ou até mesmo o estado de outros jobs. Ao aplicar esses filtros, você garante que apenas as execuções relevantes ocorram, evitando desperdício de recursos.

Por que usar Filtros de Execução?

Utilizar filtros de execução traz uma série de benefícios:

  • Eficiência: Reduz a carga de trabalho em servidores, executando apenas jobs necessários.
  • Economia de Tempo: Minimiza o tempo gasto em execuções desnecessárias.
  • Melhoria na Qualidade do Código: Focando em commits relevantes, você pode garantir que apenas as mudanças que realmente impactam o código sejam testadas.

Como Implementar Filtros de Execução

A implementação pode variar dependendo da ferramenta de CI/CD que você está utilizando. Aqui, vamos usar um exemplo com o GitHub Actions.

name: CI
on:
  push:
    branches:
      - main
      - 'feature/*'
  pull_request:
    branches:
      - main
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Run tests
        run: npm test

Neste exemplo, o job de build será executado apenas quando houver um push para a branch main ou qualquer branch que comece com feature/. Isso evita que execuções ocorram em branches que não estão prontas para produção.

Explicação do Código

O código acima define um workflow do GitHub Actions que só será acionado em pushes para a branch main ou em branches de features. O job de build irá realizar o checkout do código e rodar os testes apenas quando essas condições forem atendidas.

Filtros Baseados em Mensagens de Commit

Outra forma de aplicar filtros é através das mensagens de commit. Por exemplo, você pode querer que um job só seja executado se a mensagem do commit incluir um marcador específico, como [deploy].

name: Deploy
on:
  push:
    branches:
      - main
jobs:
  deploy:
    if: contains(github.event.head_commit.message, '[deploy]')
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to production
        run: ./deploy.sh

Analisando o Código

Aqui, o job de deploy será executado somente se a mensagem do último commit contiver a string [deploy]. Isso ajuda a garantir que apenas commits intencionais para deploy acionem o processo, evitando erros e execuções desnecessárias.

Melhores Práticas para Filtros de Execução

  1. Seja Específico: Ao criar filtros, seja o mais específico possível para evitar falsas execuções.
  2. Documente Suas Regras: Mantenha uma documentação clara sobre quais filtros estão em uso e por quê.
  3. Teste Regularmente: Verifique se os filtros estão funcionando conforme o esperado, ajustando conforme necessário.

Conclusão

Os filtros de execução são uma parte essencial da automação moderna. Ao utilizá-los, você pode otimizar seus processos de CI/CD, economizando recursos e tempo. Experimente aplicar os conceitos discutidos neste guia e veja como eles podem impactar positivamente seu fluxo de trabalho.

Com a implementação correta, você garantirá que seus jobs sejam executados de forma eficiente e eficaz, mantendo a qualidade do seu código e a agilidade da sua equipe.

Contribuições de Camila Ribeiro

Compartilhe este tutorial: Como aplicar filtros de execução para jobs com base em commits?

Compartilhe este tutorial

Continue aprendendo:

Como rodar pipelines diferentes por tipo de mudança no repositório?

Aprenda a rodar pipelines distintos dependendo do tipo de mudança no repositório, otimizando a automação de processos.

Tutorial anterior

Como validar a presença de arquivos obrigatórios antes do deploy?

Aprenda a validar arquivos essenciais antes do deploy para garantir a integridade do seu sistema.

Próximo tutorial