# 🚀 Continuous Integration (CI) Workflow

Our repository includes a **Continuous Integration (CI) workflow** that runs automatically whenever changes are pushed to the codebase. By leveraging Forgejo and GitHub Actions, we ensure that every update is thoroughly validated, resulting in a reliable and error-free image being delivered to the Forgejo registry.

---

## How It Works

### Automatic Trigger on Code Changes

Each time you push a new commit or open a pull request, a CI workflow is initiated. You can monitor these runs by navigating to the Actions tab within your GitHub project.

![step 2](../ressources/5.png)

### Workflow Steps

The CI pipeline consists of several predefined steps designed to ensure quality and security before publishing the final image:

- **📥 Checkout:**
Retrieves the latest version of the repository to ensure the workflow is working with the most recent code.

- **📝 Linting (using xxx):**
Analyzes the code for potential issues, formatting errors, or stylistic inconsistencies.

- **🔑 Docker Login:**
Authenticates with your Docker registry so that the newly built image can be pushed securely.

- **🔧 Build Application & Image:**
Constructs the application and packages it into a Docker image.

- **🛡️ Vulnerability Scanning (using xxx):**
Scans the final image for known security vulnerabilities, ensuring any issues are identified and addressed early on.

- **⬆️ Push Image to Registry:**
Uploads the successfully built image to the Forgejo registry, making it available for deployment.

### Monitoring Workflow Progress and Logs

Once the workflow starts, you can visit the **Actions** page to:

- view the current status and total runtime of the entire workflow
- check individual action runtimes and results
- access detailed logs by clicking on each action (provides insights into what happened in each action, making debugging and auditing easier)

---

By utilizing this CI workflow, you benefit from a fully automated, transparent, and secure process that maintains the highest quality standards for your code and images.
