GitHub Integration
Automated CI/CD pipeline with GitHub Actions
Siovos automatically configures a complete CI/CD pipeline on your infrastructure. Your builds run on your server and deploy directly to your Kubernetes cluster.
How It Works#
When you push code to GitHub:
- GitHub triggers the workflow
- The runner on your server executes the build
- The image is pushed to your private registry
- The application is deployed to your cluster
Everything stays private - your code never leaves your infrastructure.
Two Configuration Modes#
In the wizard, the CI/CD step offers two options:
Link to Existing CI/CD#
If you already have a CI/CD configuration in Siovos, you can reuse it for a new deployment. Useful when you have multiple environments (dev, staging, prod) linked to the same GitHub account.
- Select the existing configuration
- Name your deployment
- Start the deployment
- Secrets and runner are synced automatically
Create New CI/CD Config#
For a first-time setup or a new GitHub account.
- Enter your GitHub App credentials (App ID, Installation ID, private key)
- Select the organization or personal account
- Name your deployment
- Start the deployment
- Secrets and runner are synced automatically
Authentication uses a GitHub App, not a Personal Access Token. This provides finer-grained permissions and automatic token rotation.
What Gets Configured Automatically#
After deployment, Siovos syncs everything your pipelines need:
| Item | Description |
|---|---|
| Organization secrets | Registry credentials, cluster access tokens |
| Organization variables | Registry URL, DNS suffix, environment name |
| Self-hosted runner | Registered at the organization level, available to all your repos |
Secrets and variables are set at the GitHub organization level, not per repo. All your repos have access to them.
Using the Pipeline in Your Repos#
Create .github/workflows/deploy.yml in your repo:
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
uses: your-org/ci-templates/.github/workflows/pipeline.yml@main
with:
app_name: my-app
port: 3000
secrets: inheritThe pipeline template automatically handles:
- Docker image build
- Push to private registry
- Kubernetes deployment with Helm
- DNS and TLS configuration
Pipeline Options#
| Parameter | Description | Default |
|---|---|---|
app_name | Application name | Required |
port | Application port | Required |
replicas | Number of replicas | 1 |
health_path | Health check path | / |
extra_ingresses | Additional ingresses (JSON) | - |
Checking Status#
Runner - In GitHub: Organization → Settings → Actions → Runners. The runner should appear as "Idle" or "Active".
Secrets - Organization → Settings → Secrets and variables → Actions. You should see the secrets synced by Siovos.
Common Issues#
Runner "Offline" - Check that the server is reachable and the runner service is active. In Siovos Desktop, check the Services tab of your infrastructure.
Build fails on image push - Registry credentials are synced automatically. If the issue persists, re-run the sync from Siovos Desktop.
Deployment fails - Make sure your Dockerfile builds correctly locally before pushing.
Next Steps#
- Services - See services deployed on your infrastructure
- Certificate Management - Automatic HTTPS certificates
- Monitoring - Track your deployments