Ferramentas DevOps: GitHub Actions e CI/CD
Gabarito: letra C. O GitHub Actions é a ferramenta que permite criar workflows de CI/CD diretamente no GitHub, com os arquivos de configuração armazenados no diretório .github/workflows do repositório — exatamente o que a alternativa descreve. As demais opções misturam funções de ferramentas distintas (Selenium, Git, Jenkins, Maven) com informações incorretas sobre suas capacidades e características.
O DevOps é uma cultura que integra desenvolvimento (Dev) e operações (Ops), com foco em automação, colaboração e entregas frequentes. Uma das práticas centrais é o pipeline CI/CD, que automatiza as etapas de integração, teste e entrega do software. Nesse contexto, as ferramentas desempenham papéis específicos: algumas são para controle de versão (Git), outras para automação de builds (Maven, Gradle), outras para testes (Selenium, JUnit) e outras para orquestração de pipelines (Jenkins, GitHub Actions, GitLab CI/CD).
O GitHub Actions é um serviço de integração e entrega contínua integrado à plataforma GitHub. Ele permite que os desenvolvedores definam workflows — automações compostas por jobs e steps — que são acionados por eventos como push, pull request ou agendamento. Os workflows são escritos em arquivos YAML e ficam no diretório .github/workflows. Um repositório pode ter vários workflows, cada um executando um conjunto diferente de tarefas, como rodar testes, fazer build, publicar artefatos ou implantar em produção. Essa é a descrição precisa da alternativa C.
A pegadinha desta questão está em misturar as funções das ferramentas. O candidato que conhece superficialmente as ferramentas pode se confundir: o Selenium é de testes, o Jenkins é de CI/CD, o Maven é de build — mas as alternativas trocam essas funções e adicionam informações falsas (como linguagens suportadas, dependência entre ferramentas ou arquivos de configuração). A banca explora exatamente essa confusão entre as categorias de ferramentas no ciclo DevOps.
Para acertar, é essencial saber classificar cada ferramenta conforme sua função no pipeline: codificar (Git, GitHub, GitLab), construir (Maven, Gradle, Docker), testar (JUnit, Selenium, Cypress, SonarQube), entregar/implantar (Jenkins, GitHub Actions, GitLab CI/CD, Kubernetes). Essa classificação é o critério que separa as alternativas corretas das incorretas.
Ferramenta | Função principal | Característica correta | Característica incorreta na questão |
|---|
Selenium (A) | Automação de testes de interface gráfica | Framework para testes web/desktop | Não faz builds nem pipelines; CircleCI suporta várias linguagens (não só Go, Java, Ruby) |
Git (B) | Controle de versão distribuído | Pode ser usado com GitHub, GitLab, Bitbucket ou servidor próprio | Não é interdependente do GitHub; não realiza CI/CD sozinho |
GitHub Actions (C) | CI/CD integrado ao GitHub | Workflows em .github/workflows; vários workflows por repositório; tarefas como testar pull requests | — (descrição correta) |
Jenkins (D) | Automação de CI/CD (builds, testes, deploys) | Escrito em Java; integra-se ao Git para obter código-fonte | Não é em PHP; não é exclusivo para testes; Git não armazena histórico de testes |
Maven (E) | Automação de builds para projetos Java | Open source; arquivo principal é pom.xml | Não é proprietário; não tem controle de versão nem pipelines nativos; arquivo não é "pom.java" |
Alternativa A — ❌ Incorreta
O Selenium é um framework para automação de testes de interfaces gráficas (web e desktop), não para automação de builds ou execução de pipelines de CI/CD. Além disso, a alternativa afirma que o CircleCI é compatível apenas com Go, Java e Ruby — o que é falso, pois o CircleCI suporta diversas linguagens, incluindo Python, Node.js, PHP e outras. A confusão aqui é dupla: a função do Selenium e as linguagens suportadas pelo CircleCI.
Alternativa B — ❌ Incorreta
O Git é um sistema de controle de versão distribuído, e o GitHub é uma plataforma de hospedagem de repositórios Git. Embora sejam frequentemente usados juntos, não são interdependentes — o Git pode ser usado sem o GitHub (com GitLab, Bitbucket ou servidores próprios), e o GitHub depende do Git, mas não o contrário. A alternativa também afirma que, usados em conjunto, realizam "integração contínua" — o que é impreciso: o GitHub oferece o GitHub Actions para CI/CD, mas o Git em si não faz integração contínua.
Alternativa C — ✅ Correta ⟵ GABARITO
O GitHub Actions permite criar workflows de CI/CD diretamente no GitHub. Os workflows são definidos em arquivos YAML no diretório .github/workflows do repositório. Um repositório pode ter vários workflows, cada um podendo executar um conjunto diferente de tarefas, como criar e testar pull requests, rodar testes automatizados, fazer build e implantar. Essa é a descrição correta e completa da ferramenta.
Alternativa D — ❌ Incorreta
O Jenkins é uma ferramenta de automação de CI/CD (integração e entrega contínua), escrita em Java, não em PHP. Além disso, não é "exclusiva para automação de testes" — ela automatiza builds, testes e deploys. A alternativa também afirma que o Jenkins se integra ao Git para "armazenar o histórico dos testes automatizados" — o que é uma função incorreta: o Git armazena código-fonte, não histórico de testes.
Alternativa E — ❌ Incorreta
O Maven é uma ferramenta de automação de builds para projetos Java, mas é open source, não proprietária. Ele não possui capacidades nativas de controle de versão nem de pipelines de CI/CD — para isso, são usadas ferramentas como Jenkins ou GitLab CI/CD. O arquivo principal de um projeto Maven é o pom.xml, não o "pom.java". A alternativa mistura funções de build com controle de versão e CI/CD, além de errar o nome do arquivo de configuração.
Gabarito: letra C