53 lines
2.2 KiB
Markdown
53 lines
2.2 KiB
Markdown
# 🚀 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.
|
|
|
|

|
|
|
|
### 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 [golangci-lint](https://github.com/golangci/golangci-lint)):**
|
|
|
|
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 [trivy](https://github.com/aquasecurity/trivy)):**
|
|
|
|
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.
|