Files
silverlinux-infra/docs/cicd.md
T

2.6 KiB

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:

Manual

Future Goal

Automate deployments from Gitea repositories to target servers.

Examples:

  • Windows IIS servers
  • Application servers
  • Test environments
  • Future Linux deployments

Planned Architecture

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:

Publish
→ Copy Files
→ Restart IIS Site

Status:

Planned


Linux Containers

Purpose:

Future Docker deployments.

Method:

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:

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:

noreply@silveressence.net

Examples:

  • Build succeeded
  • Build failed
  • Deployment completed
  • Deployment failed

Security

Deployment credentials should never be stored in repositories.

Store credentials in:

/ srv/secrets/company.env

or platform-specific secret stores.


Initial Target

First automated deployment target:

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

  • Gitea
  • Portainer
  • Nginx Proxy Manager

  • gitea/README.md
  • docs/server.md
  • docs/security.md