Repository navigation
ci: migrate to GitHub Actions, make tests a hard gate, add agent guides - #38
Merged
Patrick Gugelsberger (Patrick-Gugelsberger) merged 5 commits intoJul 21, 2026
Merged
Conversation
Replace .gitlab-ci.yml with .github/workflows/ci.yml. Jobs: no-cruft, phpcs, phpstan, and tests on a PHP 8.3/8.4 matrix. Drop GitLab-only steps (auto-create-MR, codeclimate report combine, private-registry auth) — all dependencies resolve from Packagist. Correct the test matrix to 8.3/8.4 to match the ">=8.3" requirement in composer.json. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Doctrine DBAL's datetime type is timezone-naive, so DateTime values written to and read back from SQLite lose their offset and compare unequal on any non-UTC host — the dbc mapping-table tests failed accordingly. Pin date.timezone to UTC in phpunit.xml.dist so tz-sensitive round-trips are deterministic, allowing the tests job to be a hard CI gate instead of allow_failure / continue-on-error. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Clears pre-existing static-analysis errors so phpcs and phpstan can run as hard CI gates. No behavioural change. - phpcs: fully-qualify \JSON_THROW_ON_ERROR, fix @throws ordering and assignment alignment in LanguageIsoSubscriber(Test). - phpstan: drop is_array() checks already guaranteed by the @var array-shape annotations (ConnectorController::features, CrossSellingSubscriber) — they were provably always true. - phpstan: guard LanguageIsoSubscriber against mixed event data (is_array / is_string) before offset access and Service::fromISO_639_2b(). - phpstan: remove bogus @throws tags (AnnotationException and the unqualified InvalidArgumentException) that resolved to non-existent, non-Throwable types. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Add a root CLAUDE.md plus per-subsystem guides across src/ and tests/, describing the code map, coding standards, architecture, and directory- specific conventions for agentic work. Document the GitHub Actions CI (all four jobs as hard gates) and the UTC test-timezone pinning. No ADLC/PM-workflow references — this repo does not use that pipeline. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Patrick Gugelsberger (Patrick-Gugelsberger)
deleted the
agentic_optimization
branch
August 21, 2026 08:21
5 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
date.timezone=UTCinphpunit.xml.dist. Doctrine DBAL'sdatetimetype is tz-naive, soDateTimeround-trips through SQLite failed on non-UTC hosts. With this fixed,testsis now a hard gate (no moreallow_failure/continue-on-error).phpcs(13) andphpstanlevel-max (9) violations so both can gate CI. No behavioural change (deadis_array()removal,mixedguards inLanguageIsoSubscriber, bogus@throwsremoval, FQ constant/alignment/ordering).CLAUDE.mdset describing the code map, standards, architecture, and directory conventions for agentic work.Verification
Run locally on a non-UTC host (
TZ=America/Los_Angeles) and green:composer phpcs— PASScomposer phpstan(level max) — PASScomposer tests— PASS🤖 Generated with Claude Code