| .. | ||
| .forgejo/workflows | ||
| deployer | ||
| examples | ||
| README.md | ||
Cloonar CI Templates
Shared CI/CD templates for Cloonar projects.
Contents
.forgejo/workflows/
typo3-deploy.yaml # Simple deployment workflow
typo3-staged-deploy.yaml # Staged deployment with E2E tests
deployer/
typo3-recipe.php # Shared Deployer configuration
examples/
project-deploy.php # Example project deploy.php
project-servers.yaml # Example servers.yaml
project-workflow-*.yaml # Example workflow files
Quick Start
1. Update your project's build/deploy.php
Replace your entire deploy.php with:
<?php
namespace Deployer;
// Import shared recipe
require 'https://git.cloonar.com/Cloonar/ci-templates/raw/branch/main/deployer/typo3-recipe.php';
import(__DIR__ . '/servers.yaml');
host('stage')->set('cachetool', '/var/run/phpfpm/myproject.cloonar.dev.sock');
host('production')->set('cachetool', '/var/run/phpfpm/myproject.at.sock');
2. Keep your build/servers.yaml (project-specific)
hosts:
stage:
hostname: web-arm.cloonar.com
remote_user: myproject_cloonar_dev
deploy_path: ~/
# ... rest of config
3. Update your workflow
Replace .forgejo/workflows/deploy.yaml with:
Simple deployment:
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
uses: Cloonar/ci-templates/.forgejo/workflows/typo3-deploy.yaml@main
with:
target: stage
php_version: '8.3'
secrets:
deploy_key: ${{ secrets.STAGE_KEY }}
Staged deployment with tests:
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
uses: Cloonar/ci-templates/.forgejo/workflows/typo3-staged-deploy.yaml@main
with:
stage_url: https://myproject.cloonar.dev
run_e2e_tests: true
secrets:
stage_key: ${{ secrets.STAGE_KEY }}
prod_key: ${{ secrets.PROD_KEY }}
Workflow Options
typo3-deploy.yaml
| Input | Default | Description |
|---|---|---|
target |
required | stage or production |
task |
deploy |
Deployer task (deploy, release:create, release:switch) |
php_version |
8.3 |
PHP version |
run_tests |
false |
Run PHPStan/Psalm before deploy |
build_frontend |
false |
Run npm ci && npm run build |
typo3-staged-deploy.yaml
| Input | Default | Description |
|---|---|---|
stage_url |
required | URL for E2E tests |
php_version |
8.3 |
PHP version |
run_e2e_tests |
true |
Run Playwright tests after stage deploy |
e2e_path |
tests/e2e |
Path to E2E test directory |
deploy_production |
false |
Auto-deploy to prod after tests pass |
Deployer Tasks
The shared recipe provides these tasks:
release:create <target>- Upload release without switching (for staged deploys)release:switch <target>- Switch to uploaded releasedeploy <target>- Full deploy (create + switch)
Migration Checklist
- Create
Cloonar/ci-templatesrepo with these files - Update project's
build/deploy.phpto use shared recipe - Update project's
.forgejo/workflows/to use reusable workflows - Delete old
.drone.ymlfiles - Test on one project first (e.g., gbv-aktuell)