Learn CONCOURSE-CI with Real Code Examples

Updated Nov 27, 2025

Explain

Concourse CI enables fully automated CI/CD workflows through pipelines.

Pipelines are defined in YAML (`pipeline.yml`) with resources, jobs, and tasks.

Resources represent external inputs or outputs like Git repos, Docker images, or S3 buckets.

Jobs consist of tasks that run inside containers to ensure isolation and reproducibility.

Ideal for CI/CD pipelines, automated testing, Docker image building, and deployment automation.

Core Features

Declarative pipelines with jobs, tasks, and resources

Task execution in Docker containers or custom images

Resource-based triggers for automated pipeline execution

Secrets management using Vault or built-in credential managers

Web UI for monitoring pipelines, jobs, and build history

Basic Concepts Overview

Pipeline - declarative YAML file defining jobs, resources, and tasks

Job - a set of tasks executed sequentially

Task - individual unit of work running in a container

Resource - external input/output that can trigger jobs

Worker - machine executing tasks (containerized)

Project Structure

pipeline.yml - main declarative pipeline configuration

tasks/ - directory with reusable task scripts

resources/ - optional resource definitions

credentials.yml - secret management integration

README.md - documentation of pipeline usage

Building Workflow

Define resources and their types in `pipeline.yml`

Create jobs referencing resources

Add tasks to jobs with commands and Docker images

Set triggers based on resource version changes

Deploy pipeline using `fly set-pipeline` and monitor via web UI

Difficulty Use Cases

Beginner: simple build and test job

Intermediate: pipeline with multiple jobs and resources

Advanced: containerized builds with custom Docker images

Expert: complex pipelines with fan-in/fan-out resource triggers

Architect: enterprise-scale multi-team pipelines with credential managers

Comparisons

Concourse CI vs GitHub Actions - container-first pipelines vs GitHub-native CI/CD

Concourse CI vs Jenkins - declarative pipelines vs plugin-based imperative jobs

Concourse CI vs Travis CI - containerized reproducibility vs SaaS simplicity

Concourse CI vs CircleCI - highly reproducible pipelines vs cloud-optimized CI

Concourse CI vs Drone CI - pipelines-as-code emphasis vs lightweight Go-based CI

Versioning Timeline

2013 - Initial development by Pivotal

2014 - Open-sourced Concourse CI

2015 - Introduction of resource types

2017 - Web UI improvements and pipeline visualization

2018–2025 - Continuous updates for stability, container support, and enterprise adoption

Glossary

Pipeline - declarative CI/CD workflow

Job - set of tasks executed sequentially

Task - individual unit of work in a container

Resource - external input/output triggering jobs

Worker - machine executing tasks in containers