Skip to content

feat: added install matrix before release#9205

Merged
epinzur merged 17 commits into
mainfrom
ci_test_install
Jul 30, 2025
Merged

feat: added install matrix before release#9205
epinzur merged 17 commits into
mainfrom
ci_test_install

Conversation

@epinzur
Copy link
Copy Markdown
Contributor

@epinzur epinzur commented Jul 28, 2025

changed release process (and nightly release) to make sure the build can be installed and ran on a matrix of operating systems before pushing to PyPi.

Split existing release steps and renamed:

  • release_base split into build_base and publish_base.
  • release_main split into build_main and publish_main.

The test-cross-platform step occurs between build_* and publish_*

Also you manually start the test-cross-platform on an branch or a existing PyPi release.

Summary by CodeRabbit

  • Chores
    • Introduced automated cross-platform installation and functionality testing for Python packages across Linux, macOS, and Windows.
    • Updated the release process to ensure packages are only published to PyPI after passing all cross-platform tests.
    • Refactored workflow steps for improved reliability and clearer separation between testing, artifact building, and publishing stages.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jul 28, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

A new GitHub Actions workflow for cross-platform installation and functionality testing of Python packages was introduced. The release workflow was refactored to separate PyPI publishing into dedicated jobs, which now execute only after successful cross-platform tests. Artifact upload/download steps and job dependency chains were updated to enforce this new control flow.

Changes

Cohort / File(s) Change Summary
Cross-Platform Test Workflow
.github/workflows/cross-platform-test.yml
Added a new reusable workflow for cross-platform installation and basic runtime validation. Defines matrix jobs for multiple OSes, architectures, and Python versions, with artifact download, installation, CLI and server startup checks, and import tests. Includes a summary job to aggregate results.
Release Workflow Refactor
.github/workflows/release.yml
Refactored the release pipeline: moved PyPI publishing steps into new jobs (publish-base-to-pypi, publish-main-to-pypi) that depend on a new test-cross-platform job, which validates artifacts from the build jobs. The build jobs now only build, test, and upload artifacts. Downstream jobs (Docker builds, GitHub release) updated to depend on publishing jobs. Artifact upload/download and job dependency chains were adjusted to ensure PyPI publishing occurs only after successful cross-platform tests.

Sequence Diagram(s)

sequenceDiagram
    participant ReleaseBase as release-base
    participant ReleaseMain as release-main
    participant CrossTest as test-cross-platform
    participant PublishBase as publish-base-to-pypi
    participant PublishMain as publish-main-to-pypi
    participant DockerBase as call_docker_build_base
    participant DockerMainEP as call_docker_build_main_ep
    participant DockerMain as call_docker_build_main
    participant DockerMainAll as call_docker_build_main_all
    participant CreateRelease as create_release

    ReleaseBase->>CrossTest: Upload base artifact
    ReleaseMain->>CrossTest: Upload main artifact
    CrossTest->>PublishBase: On success, allow publish-base-to-pypi
    CrossTest->>PublishMain: On success, allow publish-main-to-pypi
    PublishBase->>DockerBase: On success, allow docker build base
    PublishMain->>DockerBase: On success, allow docker build base
    DockerBase->>DockerMainEP: On success, allow docker build main_ep
    PublishMain->>DockerMainEP: On success, allow docker build main_ep
    DockerMainEP->>DockerMain: On success, allow docker build main
    DockerMain->>DockerMainAll: On success, allow docker build main_all
    PublishMain->>DockerMainAll: On success, allow docker build main_all
    PublishMain->>CreateRelease: On success, allow GitHub release
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~40 minutes

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ci_test_install

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 generate unit tests to generate unit tests for 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.

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 github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jul 28, 2025
@SonicDMG SonicDMG temporarily deployed to ci_test_install - langflow-manual-install PR #9205 July 28, 2025 16:45 — with Render Destroyed
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jul 28, 2025
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jul 28, 2025
@epinzur epinzur added the lgtm This PR has been approved by a maintainer label Jul 28, 2025
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jul 29, 2025
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jul 29, 2025
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Jul 29, 2025
@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@ogabrielluiz ogabrielluiz left a comment

Choose a reason for hiding this comment

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

LGTM

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

Labels

enhancement New feature or request lgtm This PR has been approved by a maintainer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants