Questão nº 28
Questão de Tecnologia da Informação · FCC TJ-CE 2022 (nº 28)
Considere duas ferramentas 1 e 2 que permitem a criação de workflows e criam, testam, publicam, fazem o release e implantam código automaticamente.
— Similaridades entre as ferramentas 1 e 2 para a configuração de workflow: os arquivos são escritos em YAML e armazenados no repositório; workflows incluem um ou mais jobs; jobs incluem um ou mais passos ou comandos individuais; passos ou atividades podem ser reutilizados ou compartilhados com a comunidade.
— Diferenças principais ao se fazer a migração da ferramenta 1 para a ferramenta 2: o paralelismo de teste automático da ferramenta 1 agrupa automaticamente os testes de acordo com as regras especificadas pelo usuário ou informações históricas de tempo e essa funcionalidade não está incorporada na ferramenta 2.
— Ao fazer a migração de workflows: a ferramenta 1 define workflows no arquivo `config.yml`, que permite configurar mais de um workflow. A ferramenta 2 requer um arquivo de workflow para cada workflow e será necessário criar um novo arquivo de workflow para cada workflow configurado em `config.yml`.
Pelas características apresentadas, as ferramentas 1 e 2 correspondem, correta e respectivamente, a
- ADocker e Jenkins.
- BCircleCI e GitHub Actions. (alternativa correta)
- CMaven e Kubernetes.
- DDocker e Selenium.
- ECircleCI e Jenkins.
Resposta comentada
Gabarito Alternativa B
Ferramentas de CI/CD (Integração Contínua/Entrega Contínua) automatizam o ciclo de vida do desenvolvimento de software, desde a construção e teste até a entrega e implantação, usando configurações em arquivos para definir esses passos.
(A) Incorreta: Docker é uma plataforma de contêineres e Jenkins é uma ferramenta de CI/CD, mas a configuração de Jenkins (Jenkinsfile) é tipicamente em Groovy, não se encaixando nas descrições de YAML e estrutura de arquivos para ambas as ferramentas.
(B) Correta: CircleCI (Ferramenta 1) utiliza um único `config.yml` para múltiplos workflows e é conhecida por seu paralelismo de testes automático e inteligente. GitHub Actions (Ferramenta 2) requer um arquivo `.yml` separado para cada workflow e, embora suporte paralelismo, não possui a mesma funcionalidade automática de agrupamento de testes baseada em regras ou histórico que o CircleCI.
(C) Incorreta: Maven é uma ferramenta de automação de build para Java e Kubernetes é uma plataforma de orquestração de contêineres; nenhuma delas é uma ferramenta de CI/CD no contexto descrito.
(D) Incorreta: Docker é uma plataforma de contêineres e Selenium é uma ferramenta de automação de testes; nenhuma delas é uma ferramenta de CI/CD no contexto descrito.
(E) Incorreta: CircleCI (Ferramenta 1) se encaixa, mas Jenkins (Ferramenta 2) não se alinha com a característica de "requer um arquivo de workflow para cada workflow" em YAML da mesma forma que GitHub Actions, sendo sua configuração principal frequentemente em Groovy (Jenkinsfile).
Fonte: FCC TJ-CE 2022 Analista Judiciário - Especialidade Ciência da Computação - Área Sistemas da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.