Skip to content

[Maintenance] GA fixes#18148

Merged
GSadee merged 5 commits intoSylius:2.1from
NoResponseMate:SYL-5069/ga-fixes
Jun 12, 2025
Merged

[Maintenance] GA fixes#18148
GSadee merged 5 commits intoSylius:2.1from
NoResponseMate:SYL-5069/ga-fixes

Conversation

@NoResponseMate
Copy link
Copy Markdown
Contributor

@NoResponseMate NoResponseMate commented Jun 10, 2025

Tweaked the workflows a bit to be compatible with 2.x and 1.14 in full builds since these always use the workflows from the default branch:

  • Brought back running phpspec tests for 1.14;
  • Added the previous phpunit suite and used both (tests of a missing suite simply don't get run);
  • Parametrized node version based on the branch;
  • Downgraded the testApp action for Symfony 5.4 (No clue why it doesn't work w/ the latest one 🤷)

The full tests on 1.14 ran from this branch are green.

Summary by CodeRabbit

  • New Features
    • Added a step to run PHPSpec tests automatically for branch "1.14" during static checks.
  • Improvements
    • Node.js version used in workflows now adjusts automatically based on the branch, ensuring compatibility for branch "1.14".
    • Expanded PHPUnit testing to run both "all" and "Sylius Test Suite" for more comprehensive coverage.
    • Dynamic selection of test app version and build action based on branch for improved workflow flexibility.
  • Other
    • Minor workflow optimizations and conditional step execution based on branch.

@NoResponseMate NoResponseMate added Maintenance CI configurations, READMEs, releases, etc. CI labels Jun 10, 2025
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Jun 10, 2025

Walkthrough

The workflows for CI end-to-end and static checks were updated to set the Node.js version dynamically based on the branch, specifically using Node 20.x for branch "1.14" and Node 24.x otherwise. Steps involving legacy PostgreSQL setup were removed. PHPUnit test steps were expanded to run two suites, and a conditional PHPSpec step was added for branch "1.14". Additionally, the Panther JS Behat job now dynamically selects the test app version based on the branch.

Changes

File(s) Change Summary
.github/workflows/ci_e2e-mariadb.yaml
.github/workflows/ci_e2e-mysql.yaml
.github/workflows/ci_e2e-pgsql.yaml
Replaced legacy PostgreSQL setup logic with dynamic NODE_VERSION based on branch "1.14"; updated build steps to use this variable; made manifest.json preparation conditional on branch; expanded PHPUnit step to run two test suites; added dynamic test app version in Panther JS Behat job.
.github/workflows/ci_e2e-unstable.yaml Removed legacy PostgreSQL setup input; minor whitespace cleanup.
.github/workflows/ci_static-checks.yaml Added a conditional step to run PHPSpec only on branch "1.14".

Suggested reviewers

  • GSadee

Poem

A hop, a skip, a version switch,
Node twenty for the old, twenty-four for the rich!
Two test suites now, for thorough review,
PHPSpec joins in for branch one-one-four too.
With each new hop, our CI grows bright—
🐇✨ Workflows dancing through the night!


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jun 10, 2025

❌ Preview Environment deleted from Bunnyshell

Available commands:

  • 🚀 /bns:deploy to redeploy the environment

@NoResponseMate NoResponseMate marked this pull request as ready for review June 11, 2025 09:02
@NoResponseMate NoResponseMate requested review from a team as code owners June 11, 2025 09:02
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.github/workflows/ci_e2e-mariadb.yaml (1)

112-112: Normalize hyphen spacing
YAML lint flags excessive spaces after the hyphen (- name:). Standardize to - name: for cleaner, more consistent formatting.

🧰 Tools
🪛 YAMLlint (1.37.1)

[warning] 112-112: too many spaces after hyphen

(hyphens)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 223d0ce and 61c1ace.

📒 Files selected for processing (5)
  • .github/workflows/ci_e2e-mariadb.yaml (3 hunks)
  • .github/workflows/ci_e2e-mysql.yaml (9 hunks)
  • .github/workflows/ci_e2e-pgsql.yaml (3 hunks)
  • .github/workflows/ci_e2e-unstable.yaml (7 hunks)
  • .github/workflows/ci_static-checks.yaml (1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/ci_e2e-mariadb.yaml

[warning] 112-112: too many spaces after hyphen

(hyphens)

🪛 actionlint (1.7.7)
.github/workflows/ci_e2e-unstable.yaml

39-39: property "branch" is not defined in object type {ignore-failure: bool}

(expression)


55-55: property "branch" is not defined in object type {ignore-failure: bool}

(expression)


125-125: property "branch" is not defined in object type {ignore-failure: bool}

(expression)


217-217: property "branch" is not defined in object type {ignore-failure: bool}

(expression)

🔇 Additional comments (15)
.github/workflows/ci_static-checks.yaml (1)

124-127: Conditional PHPSpec step
The new PHPSpec step runs only for branch “1.14” and complements the existing static checks. Ensure PHPSpec is available in your dev dependencies to avoid failures.

.github/workflows/ci_e2e-unstable.yaml (2)

76-76: Use dynamic Node.js version
Switching node_version to ${{ env.NODE_VERSION }} ensures the runtime matches the branch logic.


80-83: Expand PHPUnit test suites
Running both --testsuite all and --testsuite="Sylius Test Suite" aligns this workflow with others and improves test coverage.

.github/workflows/ci_e2e-mariadb.yaml (4)

64-68: Conditional Node.js version setting
The Set variables step correctly initializes NODE_VERSION based on inputs.branch.


87-87: Skip manifest prep on branch “1.14”
The condition if: ${{ inputs.branch != '1.14' }} prevents overwriting prebuilt assets when targeting that release.


109-109: Inject dynamic Node.js version
Replacing the hardcoded value with ${{ env.NODE_VERSION }} makes the build step branch-aware.


113-116: Include the Sylius Test Suite
Adding vendor/bin/phpunit --testsuite="Sylius Test Suite" enhances your end-to-end coverage.

.github/workflows/ci_e2e-pgsql.yaml (4)

63-68: Conditional Node.js version setting
The Set variables step correctly sets NODE_VERSION based on inputs.branch.


80-81: Skip manifest prep on branch “1.14”
The added if condition prevents manifest overrides when assets are prebuilt for that branch.


102-102: Inject dynamic Node.js version
Switching to ${{ env.NODE_VERSION }} aligns the build action with the branch-based logic.


106-109: Expand PHPUnit test suites
Running both --testsuite all and --testsuite="Sylius Test Suite" matches other e2e workflows and boosts coverage.

.github/workflows/ci_e2e-mysql.yaml (4)

63-68: Conditional Node.js version setting
The Set variables step correctly maps NODE_VERSION from inputs.branch.


84-84: Skip manifest prep on branch “1.14”
The if: ${{ inputs.branch != '1.14' }} guard prevents unnecessary manifest file creation.


105-105: Inject dynamic Node.js version
Using ${{ env.NODE_VERSION }} instead of a fixed value makes the build condition-aware.


117-120: Expand PHPUnit test suites
Adding the “Sylius Test Suite” run alongside the all suite standardizes coverage across all end-to-end workflows.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 1

🛑 Comments failed to post (1)
.github/workflows/ci_e2e-mysql.yaml (1)

281-281: ⚠️ Potential issue

Invalid dynamic uses reference
GitHub Actions does not support the env context inside the uses field. Replace this step with separate conditional steps for each version:

- uses: "SyliusLabs/BuildTestAppAction@${{ env.TEST_APP_VERSION }}"
+ # Use explicit refs since dynamic `uses` with env context isn’t supported
+ - name: Build application (v2.3)
+   if: ${{ inputs.branch == '1.14' }}
+   uses: SyliusLabs/BuildTestAppAction@v2.3
+   with:
+     build_type: "sylius"
+     cache_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}"
+     cache_restore_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}"
+     e2e: "yes"
+     e2e_js: "yes"
+     database_version: ${{ matrix.mysql }}
+     php_version: ${{ matrix.php }}
+     symfony_version: ${{ matrix.symfony }}
+     node_version: 20.x
+     chrome_version: stable
+ - name: Build application (v2.4)
+   if: ${{ inputs.branch != '1.14' }}
+   uses: SyliusLabs/BuildTestAppAction@v2.4
+   with:
+     build_type: "sylius"
+     cache_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}"
+     cache_restore_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}"
+     e2e: "yes"
+     e2e_js: "yes"
+     database_version: ${{ matrix.mysql }}
+     php_version: ${{ matrix.php }}
+     symfony_version: ${{ matrix.symfony }}
+     node_version: 24.x
+     chrome_version: stable

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 actionlint (1.7.7)

281-281: context "env" is not allowed here. no context is available here. see https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability for more details

(expression)

🤖 Prompt for AI Agents
In .github/workflows/ci_e2e-mysql.yaml at line 281, the `uses` field incorrectly
references an environment variable using `${{ env.TEST_APP_VERSION }}`, which is
not supported by GitHub Actions. To fix this, replace the single step with
multiple conditional steps, each specifying a fixed version in the `uses` field
and guarded by an `if` condition that checks the value of
`env.TEST_APP_VERSION`. This ensures the correct action version is used without
dynamic interpolation in `uses`.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (4)
.github/workflows/ci_e2e-mysql.yaml (4)

160-164: Duplicate: Dynamic Node.js version selection
This block repeats lines 63–67. The same refactoring suggestion applies.


202-202: Duplicate: Dynamic node_version injection
Matches line 105; ensures consistency across jobs.


247-251: Duplicate: Dynamic Node.js version selection
Repeated in the Panther job; consider consolidating the logic.


294-297: Duplicate: Non-1.14 build step and dynamic node_version
This mirrors the earlier conditional build logic for other branches.

Also applies to: 305-306

🧹 Nitpick comments (2)
.github/workflows/ci_e2e-mysql.yaml (2)

63-67: Dynamic Node.js version selection
The shell logic correctly sets NODE_VERSION based on the 1.14 branch flag.

Consider extracting this repeated snippet into a reusable step or composite action to DRY up the workflow.


278-292: Conditional build step for 1.14 using v2.3 action
Switching to SyliusLabs/BuildTestAppAction@v2.3 for full 1.14 builds appears correct.

Nit: The indentation of if: under name: could be aligned for clarity.
Please confirm that v2.3 supports all required parameters (e.g., node_version and chrome_version).

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 340b9eb and 5991cf2.

📒 Files selected for processing (1)
  • .github/workflows/ci_e2e-mysql.yaml (10 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (17)
  • GitHub Check: End-to-end tests (MariaDB) / Non-JS, PHP 8.2, Symfony ^6.4, MariaDB 10.11.13, State Machine Adapter winzou_state_machine
  • GitHub Check: End-to-end tests (MariaDB) / Non-JS, PHP 8.4, Symfony ^7.2, MariaDB 11.4.7, State Machine Adapter symfony_workflow
  • GitHub Check: Frontend / NodeJS 24.x
  • GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
  • GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
  • GitHub Check: End-to-end tests (MySQL) / JS with Panther, PHP 8.4, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
  • GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.4, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
  • GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
  • GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
  • GitHub Check: End-to-end tests (MySQL) / Non-JS, PHP 8.2, Symfony ^6.4 (test_cached), MySQL 8.0, Twig ^3.3
  • GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.3, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
  • GitHub Check: End-to-end tests (MySQL) / JS with Chromedriver, PHP 8.4, Symfony ^7.2 (test_cached), MySQL 8.4, Twig ^3.3
  • GitHub Check: Packages / PHP 8.4, Symfony ^7.2
  • GitHub Check: Packages / PHP 8.3, Symfony ^7.2, ORM ^3.3
  • GitHub Check: Packages / PHP 8.2, Symfony ^6.4
  • GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.4, Symfony ^7.2, PostgreSQL 17.5
  • GitHub Check: End-to-end tests (PostgreSQL) / Non-JS, PHP 8.2, Symfony ^6.4, PostgreSQL 15.13
🔇 Additional comments (3)
.github/workflows/ci_e2e-mysql.yaml (3)

84-84: Skip manifest generation on 1.14 branch
The added if condition prevents manifest.json creation on 1.14, matching the intended JS build behavior.

Verify downstream steps don’t assume the presence of these files in 1.14 runs.


105-105: Inject dynamic node_version into build action
Replacing the hardcoded value with ${{ env.NODE_VERSION }} aligns with the new versioning logic.


117-120: Run both PHPUnit test suites
Expanding to run the all suite and the Sylius Test Suite improves coverage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Maintenance CI configurations, READMEs, releases, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants