How to build a CI/CD pipeline
Updated 7/20/2026
CI/CD (continuous integration and delivery) automatically runs your tests and deployment on every code change, so you catch errors early and ship without manual effort.
Typical stages
- Build: install dependencies and compile.
- Test: run the automated tests.
- Deploy: if tests pass, ship to the server.
With Gitea Actions
Gitea includes an Actions system compatible with GitHub's syntax. You create a .gitea/workflows/deploy.yml file:
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: composer install --no-dev
- run: php artisan test
- run: ./deploy.sh
You need a "runner" that executes the jobs, on the same server or another. See installing Gitea.
Runner on your own server
A dedicated runner on a VPS gives you full control and fixed costs, unlike the paid minutes of cloud services. With hourly billing you can start a runner only when you need it.
Secrets
Deploy keys and passwords go as secrets in the Gitea interface, never in code, see managing environment variables.
Put this guide into practice on your own VPS
EU cloud servers, billed hourly, ready in minutes, with one-click installs for dozens of apps.
See pricingRelated tutorials
How to create a systemd service for your app
Make your app start automatically and restart itself if it stops, with a systemd service.
Updated 7/20/2026Dev environmentsHow to keep sessions running after disconnect with tmux
tmux keeps your terminal sessions alive even after you close SSH, ideal for long-running tasks.
Updated 7/20/2026Dev environmentsHow to install PHP (multiple versions) and Composer
Install the PHP version your project needs, along with Composer for package management.
Updated 7/20/2026