# Job In the context of [[CICD - Continuous Integration Continuous Deployment]], a job refers to a unit of work or task that is executed as part of an automated [[Pipeline]]. Each job is a discrete step in the [[Pipeline]], often designed to perform a specific task, such as running tests, building code, deploying applications, or performing security checks. ## Key Characteristics of a CI/CD Job: 1. **Isolation:** Jobs typically run in isolation, meaning they execute independently from one another, although they can be sequenced in a [[Pipeline]]. 2. **Task-Specific:** A job is focused on a single purpose (e.g., running unit tests, building the application, or deploying code). 3. **Reproducibility:** Jobs are designed to be reproducible, running in consistent environments, often using containers or virtualized environments. 4. **Automation:** They are triggered automatically, either by events such as a code push or merge request or at scheduled times. ## Example of Jobs in a CI/CD [[Pipeline]]: - **Build Job:** Compiles the source code and creates binaries or artifacts. - **Test Job:** Executes unit tests, integration tests, or performance tests to ensure the application works as expected. - **Deploy Job:** Automates the deployment of the application to a staging or production environment. --- Bibliography: - [Jobs - gitlab.com](https://docs.gitlab.com/ee/ci/jobs/)