Labs ICT
โญ Pro Login

Continuous Integration Practices

Setting up and maintaining effective CI pipelines.

Continuous Integration Practices

Continuous Integration (CI) is the practice of frequently merging code changes into a shared repository, with each integration verified by automated builds and tests. It helps catch integration issues early.

The CI Pipeline


  +---------------------------------------------------------+
  |              CI PIPELINE STAGES                          |
  +---------------------------------------------------------+
  |                                                         |
  |   1. Source Stage                                        |
  |      - Developer commits code                            |
  |      - Triggers the pipeline                             |
  |                                                         |
  |   2. Build Stage                                        |
  |      - Compile source code                               |
  |      - Resolve dependencies                              |
  |      - Create build artifacts                            |
  |                                                         |
  |   3. Test Stage                                         |
  |      - Run unit tests                                    |
  |      - Run integration tests                             |
  |      - Code quality checks (linting, static analysis)    |
  |                                                         |
  |   4. Package Stage                                      |
  |      - Create deployable artifacts                       |
  |      - Version the build                                 |
  |                                                         |
  |   5. Deploy Stage                                       |
  |      - Deploy to staging environment                     |
  |      - Run smoke tests                                   |
  |                                                         |
  +---------------------------------------------------------+

CI Configuration Example


  # .github/workflows/ci.yml
  name: CI Pipeline

  on:
    push:
      branches: [main, develop]
    pull_request:
      branches: [main]

  jobs:
    build-and-test:
      runs-on: ubuntu-latest

      steps:
        - uses: actions/checkout@v3
        - name: Set up JDK 17
          uses: actions/setup-java@v3
          with:
            java-version: '17'
            distribution: 'temurin'

        - name: Build with Maven
          run: mvn clean compile

        - name: Run Tests
          run: mvn test

        - name: Package
          run: mvn package -DskipTests

        - name: Upload Artifact
          uses: actions/upload-artifact@v3
          with:
            name: app-package
            path: target/*.jar

Best Practices

  • Commit to the main branch at least once per day
  • Fix broken builds within 10 minutes โ€” don't let them pile up
  • Keep the build fast โ€” under 10 minutes is ideal
  • Run tests in parallel when possible
  • Automate everything โ€” never build manually

Key Takeaways

  • CI catches integration problems early when they are cheapest to fix
  • A good CI pipeline automates build, test, and deploy
  • Fix broken builds immediately to maintain trust in the process
  • CI is the foundation for Continuous Delivery and Deployment

๐Ÿงช Quick Quiz

What is Continuous Integration?