feat: reusable ci.yml — estate CI standard (Phase 0, step 1) #19

Merged
peptiderepo merged 11 commits from claude/reusable-ci-20260616 into main 2026-06-16 12:12:07 +00:00
2 changed files with 62 additions and 0 deletions
Showing only changes of commit be686bb3e0 - Show all commits

13
.github/workflows/ci-bisect-caller.yml vendored Normal file
View File

@@ -0,0 +1,13 @@
name: CI Bisect Caller
on:
push:
branches: ['claude/**']
jobs:
ci:
uses: ./.github/workflows/ci-bisect.yml
with:
tests: none
enforce_300: false
secrets: inherit

49
.github/workflows/ci-bisect.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
name: CI Bisect Test
on:
workflow_call:
inputs:
php_versions:
type: string
required: false
default: '["8.1","8.2","8.3"]'
tests:
type: string
required: false
default: stubs
enforce_300:
type: boolean
required: false
default: true
permissions:
contents: write
jobs:
lint-php:
name: PHP Lint (${{ matrix.php }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: ${{ fromJson(inputs.php_versions) }}
steps:
- run: echo "lint php ${{ matrix.php }}"
file-size:
name: 300-line rule
runs-on: ubuntu-latest
if: ${{ inputs.enforce_300 }}
steps:
- run: echo "file size check"
phpunit:
name: PHPUnit (${{ inputs.tests }})
runs-on: ubuntu-latest
if: ${{ inputs.tests != 'none' }}
strategy:
fail-fast: false
matrix:
php: ${{ fromJson(inputs.php_versions) }}
steps:
- run: echo "phpunit ${{ inputs.tests }}"