Olá, Lucas! Obrigado por compartilhar sua dúvida conosco. Entendo que a implementação de um pipeline de CD pode parecer um pouco complexa no início, mas com o tempo e a prática, você vai se acostumando.
Respondendo à sua pergunta, não é necessário rodar 100% do pipeline de CD para cada commit que você faz na main branch. O ideal é que você tenha um pipeline de CI que rode os testes unitários e de integração para garantir que o código está funcionando corretamente.
O pipeline de CD pode ser executado em um momento posterior, como após o merge dos commits na main branch ou em um horário específico do dia. É importante lembrar que o pipeline de CD deve ser executado antes da implantação em produção, para garantir que o código esteja funcionando corretamente e sem erros.
Quanto à sua preocupação sobre a quantidade de tempo que leva para executar o pipeline de CD, é possível otimizar o processo, por exemplo, utilizando testes paralelos e automatizando o processo de implantação.
Em relação à colaboração de várias pessoas no código e a possibilidade de ter múltiplos commits por dia, é importante que todos estejam alinhados com as práticas de CI/CD e que as mudanças sejam integradas à main branch com frequência para evitar conflitos.
Espero ter ajudado a esclarecer suas dúvidas. Bons estudos!