The central concept of any CI/CD system is to run tasks, but 99% of these tasks run as part of pipelines.
It is recommended to be familiar with the core configuration of tasks before moving on to this scenario where we deep dive on pipeline configuration.
Basic concourse and client configuration have been initiated as part of this introduction and should be ready for you to use soon.
Working with Pipelines
Pipelines are configured entirely via the fly CLI. There is no GUI.
Let's see how to upload a pipeline, run it and watch its execution all through the command line.
pipeline.yml (click to open) configuration defines a basic pipepline using the hello world task as covered in "Task Basics" scenario of this course.
This first pipeline is unimpressive - a single job
job-hello-world with no inputs from the left and no outputs to its right, no jobs feeding into it, nor jobs feeding from it and no triggers to kick off the job. It is the most basic pipeline.
To submit a pipeline configuration to Concourse from a file on your local disk you use the
set-pipeline command takes the name you want to store the pipeline as (
-p) and the
yaml configuration of the pipeline (
fly -t tutorial sp -p hello-world -c pipeline.yml
You will be prompted to apply any configuration changes you made in the yaml file each time with a clear diff of what you changed.
apply configuration? [yN]:
Note: Unfortunetaly the link to view the pipeline won't work in this Katacoda learning environment and we will use the terminal only.
You should see:
pipeline created! you can view your pipeline here: http://docker:8080/teams/main/pipelines/hello-world the pipeline is currently paused. to unpause, either: - run the unpause-pipeline command - click play next to the pipeline in the web ui
New pipelines start paused as you might not yet be ready for triggers to fire and trigger jobs to run.
To view all defined pipelines use the
fly -t tutorial ps
To unpause the pipeline use the
fly -t tutorial up -p hello-world
As our pipeline did not define any triggers for the job, we need to manually trigger the job, this will queue the job for execution.
Note: Triggering a job in a paused pipeline will keep the job pending until the pipeline itself is unpaused!
tj) command to trigger the
job-hello-world in our
We may pass in the
-w flag to monitor the execution of the job at the same time:
fly -t tutorial tj -j hello-world/job-hello-world -w
Once the job has completed, we may list all the builds for a pipeline using the
builds ( alias
bs) command with the
fly -t tutorial bs -p hello-world
To review the output of the last build of our job, use the
w) command with the
fly -t tutorial w -j hello-world/job-hello-world
To review the output of a particular build of our job add the
fly -t tutorial w -j hello-world/job-hello-world -b 1
We have succesfully created, ran and watched our first basic pipeline, next we will create more advanced pipelines.