From 3b2783267a39220f74ad0e2fd10002bf35867e74 Mon Sep 17 00:00:00 2001 From: peptiderepo-ops Date: Sat, 24 Oct 2026 09:39:26 +0000 Subject: [PATCH] ci(gitea): add generated Gitea Actions pipeline Rendered by peptide-e2e/tools/gitea-pipeline/render.py from repos.json; calls the shared composite actions in peptide-e2e. Production deploy is gated by the PROD_DEPLOY_ENABLED org variable (cutover switch). .github/workflows unchanged. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01AqpXh3hQMMaC74pTjFq4it --- .gitea/workflows/pipeline.yml | 131 ++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 .gitea/workflows/pipeline.yml diff --git a/.gitea/workflows/pipeline.yml b/.gitea/workflows/pipeline.yml new file mode 100644 index 0000000..1e250e2 --- /dev/null +++ b/.gitea/workflows/pipeline.yml @@ -0,0 +1,131 @@ +# GENERATED by peptide-e2e/tools/gitea-pipeline/render.py from repos.json. +# Do not edit by hand: change repos.json or the template and re-render. +name: CI / Deploy + +on: + push: + branches: [main] + pull_request: {} + workflow_dispatch: {} + +concurrency: + group: pipeline-prautoblogger-${{ github.ref }} + cancel-in-progress: false + +jobs: + lint-php: + name: PHP Lint (${{ matrix.php }}) + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + php: ["8.1", "8.2", "8.3"] + steps: + - uses: actions/checkout@v4 + - uses: https://git.protopeer.com/peptide-repo/peptide-e2e/.gitea/actions/ci-lint-php@main + with: + php: ${{ matrix.php }} + + phpcs: + name: PHPCS (WordPress standards) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.head_ref || github.ref_name }} + token: ${{ secrets.GITHUB_TOKEN }} + - uses: https://git.protopeer.com/peptide-repo/peptide-e2e/.gitea/actions/ci-phpcs@main + with: + autofix: 'true' + + file-size: + name: 300-line rule (includes) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: https://git.protopeer.com/peptide-repo/peptide-e2e/.gitea/actions/ci-file-size@main + with: + paths: includes + + phpunit: + name: PHPUnit - brain-monkey (PHP ${{ matrix.php }}) + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + php: ["8.1", "8.2", "8.3"] + steps: + - uses: actions/checkout@v4 + - uses: https://git.protopeer.com/peptide-repo/peptide-e2e/.gitea/actions/ci-phpunit@main + with: + php: ${{ matrix.php }} + tests: brain-monkey + + check-constants: + name: Check PRAUTOBLOGGER_* constants + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: shivammathur/setup-php@v2 + with: + php-version: '8.1' + coverage: none + # Fails if any PRAUTOBLOGGER_* constant referenced in shipped PHP is neither + # defined in prautoblogger.php nor guarded by defined() (v0.19.0 incident class). + - run: php scripts/check-constants.php + - name: Self-test the scanner + run: php scripts/check-constants.php --self-test + + deploy-staging: + name: Deploy to staging + needs: ["lint-php", "phpcs", "file-size", "phpunit", "check-constants"] + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} + runs-on: peptide-vps + steps: + - uses: actions/checkout@v4 + - uses: https://git.protopeer.com/peptide-repo/peptide-e2e/.gitea/actions/deploy@main + with: + stage: staging + target_path: wp-content/plugins/prautoblogger + ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} + ssh_host: ${{ secrets.SSH_HOST }} + ssh_port: ${{ secrets.SSH_PORT }} + ssh_username: ${{ secrets.SSH_USERNAME }} + + smoke: + name: Smoke tests (staging) + needs: deploy-staging + runs-on: peptide-vps + timeout-minutes: 15 + steps: + - uses: https://git.protopeer.com/peptide-repo/peptide-e2e/.gitea/actions/smoke@main + with: + wp_admin_user: ${{ secrets.STAGING_WP_ADMIN_USER }} + wp_admin_password: ${{ secrets.STAGING_WP_ADMIN_PASSWORD }} + + deploy-production: + name: Deploy to production + # Smoke is a gate: production runs only if staging deploy AND smoke succeeded. + # PROD_DEPLOY_ENABLED (org variable) is the cutover switch / kill switch. + needs: [deploy-staging, smoke] + if: ${{ vars.PROD_DEPLOY_ENABLED == 'true' && github.event_name == 'push' && github.ref == 'refs/heads/main' }} + runs-on: peptide-vps + steps: + - uses: actions/checkout@v4 + - uses: https://git.protopeer.com/peptide-repo/peptide-e2e/.gitea/actions/deploy@main + with: + stage: production + target_path: wp-content/plugins/prautoblogger + ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} + ssh_host: ${{ secrets.SSH_HOST }} + ssh_port: ${{ secrets.SSH_PORT }} + ssh_username: ${{ secrets.SSH_USERNAME }} + + audit-direct-push: + name: Audit - commit came from a PR + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} + runs-on: ubuntu-latest + steps: + - uses: https://git.protopeer.com/peptide-repo/peptide-e2e/.gitea/actions/audit-direct-push@main + with: + token: ${{ secrets.GITHUB_TOKEN }}