Files
silverlinux-infra/docs/cicd.md
T

2.7 KiB

CI/CD

Overview

SilverLinux provides CI/CD through globally enabled Gitea Actions and a self-hosted runner. Package publishing is operational; application deployment to Windows IIS and Linux targets remains future work.


Gitea Actions

Gitea Actions is enabled in Gitea's app.ini and is available globally.

Status:

Operational

Self-Hosted Runner

Property Value
Location /srv/docker/gitea-runner
Image gitea/act_runner:latest
Runner name silverlinux-runner
Runner type Global Runner
Status Operational

Runner labels:

  • ubuntu-latest
  • ubuntu-24.04
  • ubuntu-22.04

The global runner can execute Actions workflows for repositories hosted by the SilverLinux Gitea instance.


Silver 2.0 Package Publishing

Workflow:

.gitea/workflows/package.yml

The workflow runs when both conditions are satisfied:

  1. Code is pushed to the net-8-version branch.
  2. The commit message contains [Package].

Example commit message:

Package Silver 2.0 libraries [Package]

Pipeline steps:

  1. Check out the repository.
  2. Install the .NET 8 SDK.
  3. Restore the solution.
  4. Build the solution using the Deploy configuration.
  5. Pack the NuGet packages.
  6. Push the packages to BaGet.

NuGet feed:

https://nuget.silveressence.net/v3/index.json

Operational Flow

Git push
  -> Gitea Actions
  -> silverlinux-runner
  -> dotnet restore
  -> dotnet build
  -> dotnet pack
  -> BaGet package publish

The complete workflow has been tested successfully and is operational.


Secrets

Runner registration token:

GITEA_RUNNER_REGISTRATION_TOKEN

Source:

Infisical

BaGet publishing credential:

Repository Settings -> Actions -> Secrets
BAGET_API_KEY

No credentials are stored in repositories. Infrastructure-level secrets belong in Infisical; repository workflow secrets belong in Gitea Actions Secrets.


Future Deployment Targets

Windows IIS

Planned targets include ASP.NET Core, Blazor Server and Blazor Web App deployments.

Publish -> Copy files -> Restart IIS site

Status: Planned

Linux Containers

Build image -> Push image -> Deploy stack

Status: Future


Future Enhancements

  • Automated tests
  • Automated Windows IIS deployment
  • Linux container deployment
  • Release pipelines
  • Multi-environment deployments
  • Package publishing for additional repositories

  • Gitea
  • Gitea Actions Runner
  • BaGet
  • Portainer
  • Nginx Proxy Manager
  • gitea/README.md
  • baget/README.md
  • docs/server.md
  • docs/security.md
  • docs/secrets.md