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:

  1. GitHub triggers the workflow
  2. The runner on your server executes the build
  3. The image is pushed to your private registry
  4. 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:

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.

Link existing CI/CD
  1. Select the existing configuration
  2. Name your deployment
  3. Start the deployment
  4. Secrets and runner are synced automatically

Create New CI/CD Config#

For a first-time setup or a new GitHub account.

Create CI/CD config
  1. Enter your GitHub App credentials (App ID, Installation ID, private key)
  2. Select the organization or personal account
  3. Name your deployment
  4. Start the deployment
  5. 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:

ItemDescription
Organization secretsRegistry credentials, cluster access tokens
Organization variablesRegistry URL, DNS suffix, environment name
Self-hosted runnerRegistered 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: inherit

The pipeline template automatically handles:

  • Docker image build
  • Push to private registry
  • Kubernetes deployment with Helm
  • DNS and TLS configuration

Pipeline Options#

ParameterDescriptionDefault
app_nameApplication nameRequired
portApplication portRequired
replicasNumber of replicas1
health_pathHealth check path/
extra_ingressesAdditional 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#

Was this page helpful?