Skip to content

Commit fd6092c

Browse files
Sniderclaude
andcommitted
ci(lint): pilot core-lint workflow alongside native PHPStan/Psalm jobs
Adds .github/workflows/lint-corelint.yml as a parity workflow for the core-lint orchestrator. Runs side-by-side with the existing static-analysis.yml jobs so PHPStan + Psalm output can be diffed between the native runners and the core-lint adapters across at least one merge cycle. The pilot is non-blocking (continue-on-error: true) — if core-lint fails the PR is not gated. Native jobs remain authoritative until parity is confirmed. Spec: plans/code/core/lint/RFC.md §5.4 (PHP adapter table), §7.2 (GitHub Actions integration) Co-Authored-By: Cladius Maximus <claude@anthropic.com>
1 parent 5a1be07 commit fd6092c

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: core-lint pilot
2+
3+
on:
4+
push:
5+
branches: [main, develop, dev]
6+
pull_request:
7+
branches: [main, develop, dev]
8+
9+
# Pilot workflow that runs the core-lint orchestrator (PHPStan + Psalm via the
10+
# code/core/lint adapters) ALONGSIDE the existing native phpstan/psalm jobs in
11+
# .github/workflows/static-analysis.yml. Both must continue to run for at least
12+
# one merge cycle so the parity between native and core-lint outputs can be
13+
# diffed before native jobs are removed.
14+
#
15+
# Spec: plans/code/core/lint/RFC.md §5 (Adapter), §5.4 (Built-in Adapters)
16+
17+
jobs:
18+
core-lint:
19+
name: core-lint (pilot)
20+
runs-on: ubuntu-latest
21+
continue-on-error: true # Pilot — failures here MUST NOT block PRs.
22+
23+
steps:
24+
- name: Checkout code
25+
uses: actions/checkout@v4
26+
27+
- name: Setup PHP
28+
uses: shivammathur/setup-php@v2
29+
with:
30+
php-version: 8.3
31+
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite
32+
coverage: none
33+
34+
- name: Install PHP dependencies
35+
run: composer install --prefer-dist --no-interaction --no-progress
36+
37+
- name: Setup Go
38+
uses: actions/setup-go@v5
39+
with:
40+
go-version: '1.26'
41+
42+
- name: Install core-lint
43+
run: |
44+
go install dappco.re/go/lint/cmd/core-lint@latest || \
45+
go install github.com/dappcore/lint/cmd/core-lint@latest
46+
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"
47+
48+
- name: Run core-lint (PHP, JSON for diffing)
49+
run: |
50+
core-lint run --lang php --ci --output json > core-lint-report.json || true
51+
core-lint run --lang php --output text || true
52+
53+
- name: Upload core-lint report
54+
if: always()
55+
uses: actions/upload-artifact@v4
56+
with:
57+
name: core-lint-report
58+
path: core-lint-report.json
59+
if-no-files-found: ignore

0 commit comments

Comments
 (0)