Files
silverlinux-infra/docs/cicd.md
T

248 lines
2.6 KiB
Markdown

# CI/CD
## Overview
The goal of SilverLinux is to become the central deployment platform for Silver Solutions applications.
Source code is managed through Gitea and future deployments should be automated through CI/CD pipelines.
---
## Current Situation
Application deployments are currently performed manually.
Typical process:
1. Developer commits code.
2. Developer publishes application.
3. Files are deployed manually.
4. IIS application is restarted if necessary.
Status:
```text
Manual
```
---
## Future Goal
Automate deployments from Gitea repositories to target servers.
Examples:
* Windows IIS servers
* Application servers
* Test environments
* Future Linux deployments
---
## Planned Architecture
```text
Developer
Git Commit
Gitea
Gitea Actions
Build
Test
Deploy
Target Server
```
---
## Deployment Targets
### Windows IIS
Purpose:
Deploy:
* ASP.NET Core
* Blazor Server
* Blazor Web App
Method:
```text
Publish
→ Copy Files
→ Restart IIS Site
```
Status:
Planned
---
### Linux Containers
Purpose:
Future Docker deployments.
Method:
```text
Build Docker Image
→ Push Image
→ Deploy Stack
```
Status:
Future
---
## Planned Tooling
### Gitea Actions
Purpose:
* Build automation
* Testing
* Deployment automation
Status:
Planned
---
### Self-Hosted Runner
Purpose:
Execute build pipelines.
Potential Location:
```text
SilverLinux
```
Status:
Planned
---
## Pipeline Stages
### Build
Examples:
* Restore NuGet packages
* Build solution
* Publish application
---
### Test
Examples:
* Unit tests
* Integration tests
* Build validation
---
### Deploy
Examples:
* IIS deployment
* Docker deployment
* Environment updates
---
## Notifications
Future CI/CD notifications should use:
```text
noreply@silveressence.net
```
Examples:
* Build succeeded
* Build failed
* Deployment completed
* Deployment failed
---
## Security
Deployment credentials should never be stored in repositories.
Store credentials in:
```text
/ srv/secrets/company.env
```
or platform-specific secret stores.
---
## Initial Target
First automated deployment target:
```text
Gitea
Windows Server IIS
Blazor Applications
```
This provides the highest immediate value.
---
## Future Enhancements
* Automatic testing
* Automatic deployment
* Release pipelines
* Docker image registry
* BaGet integration
* Multi-environment deployments
---
## Related Services
* Gitea
* Portainer
* Nginx Proxy Manager
---
## Related Documentation
* gitea/README.md
* docs/server.md
* docs/security.md