Add GitHub Actions CI - #310
Conversation
️✅ There are no secrets present in this pull request anymore.If these secrets were true positive and are still valid, we highly recommend you to revoke them. 🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request. |
Baseline was generated under a newer local PHP (post-Homebrew-upgrade), which changed wording for the implicitly-nullable-parameter deprecation check and broke CI's baseline match against the pinned 8.3 target.
SonarCloud flagged floating version tags (e.g. @v4) as a supply-chain risk. Pin every action to its resolved commit SHA, with the version kept as a trailing comment for readability. Also bumps github/codeql-action from v2 to v4 (latest major) while in the file.
mariadb:11 now resolves to 11.8.8, which dropped the mysqladmin binary the health-cmd relied on. The command silently failed to execute, so the service was never marked healthy even though MariaDB itself started fine. Switch to healthcheck.sh, the image's own bundled health-check script.
Controller tests read getenv('SECURE_SCHEME') to decide whether to
simulate an HTTPS request, but that only sees real process env vars,
not .env-loaded values (Symfony's Dotenv doesn't call putenv() by
default). CI has no docker-compose layer to supply this like local
dev/test does, so every request was treated as insecure and hit the
requires_channel https redirect in security.yaml, failing 12 tests.
base.html.twig calls encore_entry_link_tags()/encore_entry_script_tags(), which need public/build/entrypoints.json (git-ignored Webpack Encore output). CI only ran composer install, so that file never existed and any test rendering the base template 500'd. Add actions/setup-node (Node 22, matching the Dockerfile) plus yarn install/build before the test suite runs.
v3.24.0's IntegrationTestCase used a non-static getTests() as its @dataProvider, which PHPUnit 12 refuses to call, throwing ArgumentCountError for testIntegration()/testLegacyIntegration() in TwigGeneralExtensionTest and TwigMarkdownExtraFilterTest. Fixed upstream in twigphp/Twig#4826 (static provideTests()/ provideLegacyTests() with #[DataProvider] attributes), merged into the 3.x branch and released in v3.28.0. No composer.json change needed — the existing ^3.0 constraint already allows it.
Mostly mechanical: declare(strict_types=1) added where missing (SafeDeclareStrictTypesRector) and #[\Override] added to overridden migration methods (AddOverrideAttributeToOverriddenMethodsRector), plus assorted coding-style and code-quality fixes. Verified clean with PHPStan and no new PHPUnit failures (remaining failures are pre-existing local-only Elasticsearch connectivity gaps).
SonarQube flagged that lifecycle scripts (preinstall/postinstall) run by default, a known supply-chain attack vector. Add --ignore-scripts; verified locally that install and yarn build both still succeed since none of our JS deps need a native build/install step.
|



No description provided.