No trecho de arquivo .gitlab-ci.yml, utilizado no GitLab CI...

Próximas questões
Com base no mesmo assunto
Q3407607 Engenharia de Software
A respeito de CI/CD (continuous integration/continuous delivery), julgue o próximo item.
No trecho de arquivo .gitlab-ci.yml, utilizado no GitLab CI/CD para definir regras de execução de pipelines, só será criada a pipeline se as três regras de ativação do workflow.rules forem verdadeiras. 
Imagem associada para resolução da questão
Alternativas

Comentários

Veja os comentários dos nossos alunos

No GitLab CI/CD, as regras definidas em WORKFLOW:RULES: funcionam de forma avaliativa sequencial — ou seja, a primeira regra que for verdadeira define se a pipeline será criada ou não. Não é necessário que todas as regras sejam verdadeiras.

Portanto, a assertiva está Errada.

Introdução a workflow.rules no GitLab CI/CD

Em pipelines do GitLab, o bloco workflow com rules controla se um pipeline será criado antes mesmo de avaliar jobs. Cada entrada em rules é avaliada na ordem e a primeira condição verdadeira determina a criação do pipeline; não é um “E lógico” entre todas as regras.

Resolução

A afirmação está incorreta. No workflow.rules, cada regra é testada em sequência e basta que uma delas seja verdadeira para o pipeline ser criado. Não é necessário que todas as regras sejam simultaneamente verdadeiras. No trecho mostrado, o pipeline será criado se for um evento de merge request, ou se a execução for para um commit marcado como tag, ou se o branch do commit for igual ao branch padrão. Se nenhuma dessas condições for satisfeita, o pipeline não será criado. Esse comportamento evita pipelines em cenários fora dos gatilhos desejados e permite combinar múltiplos casos de disparo sem exigir que ocorram juntos.

Para exigir que as três condições sejam verdadeiras ao mesmo tempo, não se usa múltiplas regras separadas; é preciso condensar a lógica em uma única regra com uma expressão booleana que combine os três predicados. Exemplo prático em uma única regra:

if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_TAG && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

Resposta: Errado - Perplexity

Para que estiver estuando GitHub Actions, bom ficar atento a essa estrutura do Workflow. É como o "ON", que serve para disparar os gatilhos que farão a pipeline executar. No caso da questão, foi colocada a condiconal e, da forma como está inscrita, basta uma ser verdadeira para disparar o evento. Para que fossem necessárias as 3 condições, o código deveria "concatenar" as 3 com operadores lógios "E" (&& no caso).

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo