Task 4: First CI/CD Pipeline
Task 4: First CI/CD Pipeline
Create the Pipeline File
Navigate to Repository > Files and click the + symbol to create a new file.

Name the file .gitlab-ci.yml (note the leading dot). This filename is essential for GitLab to recognize it as a pipeline configuration.

Pipeline Configuration
Copy and paste this configuration into your editor:
workflow:
rules:
- if: $CI_COMMIT_BRANCH != "main" && $CI_PIPELINE_SOURCE != "merge_request_event"
when: never
- when: always
stages:
- test_docker
- test_shell
run_test_docker:
stage: test_docker
tags:
- docker
script:
- echo $HOSTNAME
- echo "I am a test output on a docker environment"
run_test_shell:
stage: test_shell
tags:
- shell
script:
- echo $HOSTNAME
- echo "I am a test output on a shell environment"
- ansible --versionConfiguration Explanation
The pipeline configuration accomplishes several things:
Workflow Rules: Pipeline execution triggers on the main branch and merge request events only.
Pipeline Stages: Two distinct stages organize your jobs sequentially—test_docker runs first, followed by test_shell.
Docker Job: The run_test_docker task executes on Docker runners (identified by the docker tag) and outputs hostname information.
Shell Job: The run_test_shell task runs on shell runners and includes Ansible version verification.
Monitor Pipeline Execution
After committing changes, visit CI/CD > Pipelines to track execution status.

Click individual jobs to inspect detailed output logs.
Docker Job Output

Shell Job Output

Practice Exercises
Experiment with these modifications in the CI/CD Editor:
- Execute "ansible –version" within the docker stage
- Introduce intentional command errors to observe failure handling
- Expand job counts within each stage
- Incorporate
before_scriptandafter_scriptblocks in your jobs
Reference Documentation
Consult GitLab's official resources for deeper learning:
