# 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 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) ```yaml 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:** ```yaml 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:** ```yaml 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 ` - Upload release without switching (for staged deploys) - `release:switch ` - Switch to uploaded release - `deploy ` - Full deploy (create + switch) ## Migration Checklist - [ ] Create `Cloonar/ci-templates` repo with these files - [ ] Update project's `build/deploy.php` to use shared recipe - [ ] Update project's `.forgejo/workflows/` to use reusable workflows - [ ] Delete old `.drone.yml` files - [ ] Test on one project first (e.g., gbv-aktuell)