Module 4: Job and Stage Management
- Advanced Job Configurations: Configuring parallel execution and managing job dependencies.
- Complex Pipelines: Organizing complex pipelines with multiple stages and conditional logic.
- Precise Job Control: Using only and except rules to control job execution.
- Job Logs: Analyzing and troubleshooting job logs for better visibility and debugging.
- Dynamic Jobs: Creating pipelines with dynamic jobs by leveraging needs for flexible workflows.
- Best Practices: Managing and scaling complex CI/CD pipelines effectively.
Module 3: Variables and Artifacts
- Artifacts: Understanding artifacts in GitLab and how to store and share data between jobs.
- Variables: Using predefined, custom, and secret variables to control pipeline behavior.
- Scripts: Writing scripts for different stages to execute tasks.
- Artifacts via JFrog: Storing and using build artifacts via JFrog Artifactory CLI.
- Artifact Retention Policies: Managing long-term storage of artifacts.
- Caches: Speeding up builds with caching strategies for dependencies and resources.
Module 2: Pipeline Configuration
- .gitlab-ci.yml Structure: Structure and syntax of the .gitlab-ci.yml file.
- First Pipeline and Jobs: Your first GitLab CI/CD pipeline and configuring jobs, understanding their roles in the pipeline.
- Stages: Organizing jobs into stages and understanding how stages are executed sequentially.
- Dependencies: Managing job dependencies and controlling the order of execution.
- Runner Selection: Using custom variables to assign runner tags in pipelines dynamically.
- Triggering Pipelines: Configuring manual, scheduled, or event-based triggers.
Module 1: GitLab CI/CD Introduction
- CI/CD Workflow: Overview of the CI/CD process and how GitLab facilitates it.
- GitLab Overview: Key features and benefits over Jenkins.
- GitLab Architecture: High-level architecture of GitLab and its components.
- Jenkins vs. GitLab CI/CD: Benefits and trade-offs when migrating from Jenkins to GitLab.
- GitLab Runners: Types (shared, group, specific) and their use cases.
- Runner Executors: Shell, Docker, and Kubernetes executors for running jobs.