DevOps and CI/CD
medium

Questão de DevOps and CI/CD #019e3a4f

Enunciado da Questão
DevOps and CI/CD
#continuous integration
#automation
#devops
#testing
Médio

What does "Continuous Integration" mean?

A

The continuous integration and testing of code changes from multiple sources manually.

B

The continuous integration and testing of code changes from multiple sources via automation.

Correta
C

The continuous integration of changes from one environment to another.

D

The continuous integration of new tools to support developers in a project.

Explicação Oficial / Explicações da Comunidade

Continuous Integration (CI) is a software development practice where developers frequently merge their code changes into a shared repository, and each integration is automatically verified by building the application and running tests. The key aspect is automation: the process of integrating and testing code changes from multiple sources is performed automatically, not manually.

How it Works

Developers commit code to a version control system (e.g., Git). A CI server (e.g., Jenkins, GitLab CI, GitHub Actions) automatically detects the change, pulls the latest code, builds the project, and runs a suite of tests (unit, integration, etc.). If any step fails, the team is notified immediately, allowing rapid fixes. This ensures that the main branch remains stable and that integration issues are caught early.

Why the Correct Answer is Right

The correct answer states that CI involves the continuous integration and testing of code changes from multiple sources via automation. Automation is the cornerstone of CI: it eliminates manual steps, reduces human error, and provides fast feedback. Without automation, the process would be slow, error-prone, and not truly "continuous."

Why the Incorrect Answers are Wrong

  • The option describing manual integration and testing is incorrect because CI relies on automation to be efficient and reliable. Manual processes cannot keep up with frequent integrations and are prone to mistakes.
  • The option about integrating changes from one environment to another describes Continuous Delivery or Deployment, not CI. CI focuses on integrating code into a shared repository, not promoting changes across environments.
  • The option about integrating new tools to support developers is unrelated to CI. CI is a practice for code integration and testing, not about tool integration.