4.5 KiB
4.5 KiB
Cross-Platform Install Tests
Guide for running cross-platform installation tests manually and programmatically.
Available Tests
1. Test from PyPI
Tests published langflow packages from PyPI across all platforms.
Via GitHub UI:
- Go to Actions → Manual Cross-Platform Test
- Check "Test from PyPI"
- Optionally specify a version (leave empty for latest)
- Click "Run workflow"
Via CLI:
# Test latest version
gh workflow run cross-platform-test-manual.yml -f test-from-pypi=true
# Test specific version
gh workflow run cross-platform-test-manual.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:
- Go to Actions → Manual Cross-Platform Test
- Leave "Test from PyPI" unchecked
- Click "Run workflow"
Via CLI:
# Test current branch
gh workflow run cross-platform-test-manual.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
- Package Installation:
uv pip install langflow(PyPI) or local wheel installation - Dependencies: Additional packages like
openaifor full functionality - CLI Help:
langflow --help - Server Startup:
langflow run --backend-onlywith/health_checkendpoint validation - Python Import:
import langflow
Common Options
# Extended timeout (10 minutes instead of default 5)
gh workflow run cross-platform-test-manual.yml \
-f test-timeout=10
# Test specific PyPI version
gh workflow run cross-platform-test-manual.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 installwith 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_checkfor 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 --seedfor consistent pip availability
Workflow Architecture
Manual Entry Point:
└── cross-platform-test-manual.yml (workflow_dispatch)
├── PyPI Mode → cross-platform-test-shared.yml
└── Source Mode → cross-platform-test.yml → cross-platform-test-shared.yml
Programmatic Entry Point:
└── cross-platform-test.yml (workflow_call only)
└── cross-platform-test-shared.yml
- Manual Workflow: User-facing interface with PyPI/source options
- Main Workflow: Internal workflow for programmatic calls (CI, releases)
- Shared Workflow: Core test execution logic (matrix jobs)
- Single Entry Point: Use
cross-platform-test-manual.ymlfor all manual testing
Parameter Requirements
⚠️ Important: When calling reusable workflows from workflow_dispatch triggers, all parameters must be explicitly provided, even optional ones with defaults. Missing optional parameters can cause workflows to be silently skipped.
Example of correct parameter passing:
uses: ./.github/workflows/cross-platform-test-shared.yml
with:
install-method: "wheel"
test-timeout: 5
langflow-version: "" # ← Required even though optional
base-artifact-name: "dist"
main-artifact-name: "dist"
run-id: "" # ← Required even though optional
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