Back to Blog
team@tinypod.app

Self-Hosting Gitea Actions: CI/CD Without GitHub

Gitea Actions provides GitHub Actions-compatible CI/CD on your own server. Same YAML workflows, no GitHub dependency.

giteaci-cdactionsdevops

What Are Gitea Actions?


Gitea Actions is a CI/CD system built into Gitea that's compatible with GitHub Actions workflow syntax. Your existing .github/workflows YAML files work with minimal changes.


Why Self-Host CI/CD?


  • GitHub Actions free tier: 2,000 minutes/month
  • GitHub Actions Team: $4/user/month + $0.008/minute overages
  • Self-hosted: Unlimited minutes, your hardware

  • Compatibility


    Gitea Actions supports:

  • Workflow syntax (on, jobs, steps)
  • Most GitHub Actions (via act runner)
  • Container-based steps
  • Matrix builds
  • Artifacts
  • Caching
  • Secrets and variables

  • Setup


    1. Enable Actions in Gitea settings

    2. Register a runner (the machine that executes workflows)

    3. Add workflow files to your repository

    4. Push and watch it run


    Example Workflow


    .gitea/workflows/ci.yml:


    name: CI

    on: [push, pull_request]

    jobs:

    test:

    runs-on: ubuntu-latest

    steps:

  • uses: actions/checkout@v4
  • uses: actions/setup-node@v4
  • with:

    node-version: 20

  • run: npm ci
  • run: npm test
  • run: npm run build

  • Almost identical to a GitHub Actions workflow.


    Self-Hosted Runners


    Runners execute your workflows. Run them on:

  • The same server as Gitea (simple but shares resources)
  • A separate server (better isolation)
  • Multiple runners for parallel builds

  • Deployment


    1. Gitea is already deployed on TinyPod

    2. Enable Gitea Actions in settings

    3. Register the act runner

    4. Add workflow files to repos

    5. CI/CD runs on every push


    Resources: Runner needs 1-2 CPU, 2 GB RAM depending on build complexity.


    Migration from GitHub Actions


    1. Copy .github/workflows/ to .gitea/workflows/

    2. Replace github.com-specific actions with compatible versions

    3. Update any GitHub-specific environment variables

    4. Most workflows work with zero changes