# 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/)