Service

Automation pipelines

Predefined CI/CD pipeline templates for automating build, test, and deployment processes in EIT services.

Overview

To streamline the automation of build, test, deployment, and other processes for EIT services and packages, a set of predefined pipelines and reusable steps is available.

These templates allow developers to:

  • Centralize pipeline management, enabling easier updates and maintenance.
  • Introduce new features or fix issues efficiently across all services.
  • Ensure consistency across all projects by following best practices.

Repository and implementation details

All pipeline templates are stored in the following repository:

pipeline-templates-be

pipeline-templates-be

Naming conventions

To maintain clarity and organization, YAML files follow a consistent naming pattern:

{task-name}-{version}.{jobs|stages|steps}.yml

examples:

/deploy/deploy-configs-v3.jobs.yml
/docker/build-image-v4.jobs.yml
/dotnet/build-unit-tests.net8.jobs.yml
/git/tag-commit.jobs.yml
/pipeline/service-pipeline-v1.stages.yml

This naming convention helps in quickly identifying the purpose, version, and scope of each pipeline template.

Versioning

Versioning is managed directly within the filenames, ensuring compatibility across different projects. Since pipelines are referenced by specific commits (branch, tag) during execution, this approach guarantees stability and backward compatibility. Files can reference other files (e.g., a pipeline template references specific pipeline jobs or steps).

Versioning Strategy:

  • A new version is typically created whenever:
    • A breaking change is introduced.
    • New required functionality is added.
    • Enhancements or optimizations are implemented.

examples:

/docker/build-image-v3.jobs.yml
/docker/build-image-v4.jobs.yml

Usage

Integrating pipeline templates into a service is straightforward. Below is an example of how the svc-blog-posts service utilizes the predefined pipeline templates.

Example Service Pipeline Usage

pipeline template usage

Example Pipeline Stages Usage:

The following link showcases the service pipeline stage definition:

service pipeline template


Benefits of Using Automation Pipelines

  • Consistency:
    Ensures uniform CI/CD processes across all projects.
  • Efficiency:
    Reduces effort by reusing existing, tested pipeline templates.
  • Scalability:
    Easily extendable to accommodate new requirements or services.
  • Centralized Management:
    Enables quick updates and improvements across all pipelines.
  • Version Control:
    Guarantees compatibility and stability for deployed pipelines.

Summary

EIT's automation pipelines provide a robust and standardized approach to CI/CD processes, simplifying service management and enhancing productivity. By leveraging these templates, teams can focus more on application logic while ensuring a reliable and efficient deployment pipeline.


Copyright © 2025. All rights reserved.