langflow/.github/workflows/cross-platform-test.md
Eric Pinzur e1d3e741fd
feat: added install matrix before release (#9205)
* added install matrix before release

* adds ad-hoc testing

* temp enable test

* test changes

* fix test config

* fix package install

* commonize code

* renamed files

* fix issue

* remvoe run id

* fix base build

* revert main package build change

* fix build

* fix upload

* revert ci to main

* updated release workflow naming

* add cross-platform tests to nightly build
2025-07-30 19:57:59 +00:00

3.5 KiB

Ad-Hoc Cross-Platform Install Tests

Quick guide for running cross-platform installation tests manually.

Available Tests

1. Test from PyPI

Tests published langflow packages from PyPI across all platforms.

Via GitHub UI:

  1. Go to ActionsManual Cross-Platform Test
  2. Check "Test from PyPI"
  3. Optionally specify a version (leave empty for latest)
  4. Click "Run workflow"

Via CLI:

# Test latest version
gh workflow run manual-cross-platform-test.yml -f test-from-pypi=true

# Test specific version
gh workflow run manual-cross-platform-test.yml \
  -f test-from-pypi=true \
  -f langflow-version="1.0.18"

2. Test from Source

Builds and tests langflow from current branch source code.

Via GitHub UI:

  1. Go to ActionsManual Cross-Platform Test
  2. Leave "Test from PyPI" unchecked
  3. Click "Run workflow"

Via CLI:

# Test current branch
gh workflow run manual-cross-platform-test.yml -f test-from-pypi=false

Platforms Tested

  • Linux: AMD64
  • macOS: Intel (AMD64), Apple Silicon (ARM64)
  • Windows: AMD64
  • Python versions:
    • Linux & macOS: 3.10 and 3.13
    • Windows: 3.10 and 3.12 (3.12 used instead of 3.13 for better stability)

What Gets Tested

  1. Package Installation: uv pip install langflow (PyPI) or local wheel installation
  2. Dependencies: Additional packages like openai for full functionality
  3. CLI Help: langflow --help
  4. Server Startup: langflow run --backend-only with /health_check endpoint validation
  5. Python Import: import langflow

Common Options

# Extended timeout (10 minutes instead of default 5)
gh workflow run manual-cross-platform-test.yml \
  -f test-timeout=10

# Test specific PyPI version
gh workflow run manual-cross-platform-test.yml \
  -f test-from-pypi=true \
  -f langflow-version="1.0.18"

Use Cases

  • Before releases: Verify current branch works on all platforms
  • After PyPI publish: Confirm published packages install correctly
  • Debugging issues: Test specific versions when users report problems
  • Development: Quick cross-platform validation during feature work

Technical Details

Installation Methods

  • PyPI testing: Uses uv pip install with official PyPI packages
  • Source testing: Builds wheels from source, then installs locally
  • Dependencies: Automatically installs additional packages (openai) for full functionality

Health Checking

  • Endpoint: Uses /health_check for reliable server readiness validation
  • Validation: Checks database connectivity and chat service functionality
  • Timeout: Configurable timeout with proper cross-platform handling

Platform-Specific Optimizations

  • Windows: Uses Python 3.12 for better package ecosystem stability
  • Unix: Uses Python 3.13 for latest language features where stable
  • Virtual Environments: Uses uv venv --seed for consistent pip availability

Workflow Architecture

  • Shared Logic: Common test steps defined in shared-cross-platform-test.yml
  • DRY principle: No code duplication between manual and automated workflows
  • Flexible: Supports both wheel and PyPI installation methods through single workflow

Results

  • Success: All platforms pass installation and basic functionality
  • Failure: One or more platforms fail (check logs for details)
  • Each platform/Python combination runs independently
  • Parallel execution: All platforms tested simultaneously for faster feedback