Test #9
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This workflow will install Python dependencies, run tests and lint with multiple Python versions | |
| # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
| name: CI | |
| on: | |
| push: | |
| pull_request: | |
| branches: [ master ] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install flake8 pytest | |
| # Install the package itself in development mode | |
| pip install -e . | |
| - name: Lint with flake8 | |
| run: | | |
| # stop the build if there are Python syntax errors or undefined names | |
| flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | |
| # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide | |
| flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics | |
| - name: Test package installation | |
| run: | | |
| # Test that the package can be imported | |
| python -c "import jiveplot; print('jiveplot imported successfully')" | |
| # Test that scripts are available | |
| which jplotter || echo "jplotter script not found in PATH" | |
| which standardplots || echo "standardplots script not found in PATH" | |
| which klk1 || echo "klk1 script not found in PATH" | |
| - name: Test wheel installation | |
| run: | | |
| # Build wheel | |
| python -m pip install build | |
| python -m build --wheel | |
| # Create clean test environment | |
| python -m venv test_wheel_env | |
| source test_wheel_env/bin/activate | |
| # Install only the wheel (not in development mode) | |
| pip install dist/*.whl | |
| # Test scripts are installed and executable | |
| which jplotter && echo "✅ jplotter found in PATH" | |
| which standardplots && echo "✅ standardplots found in PATH" | |
| which klk1 && echo "✅ klk1 found in PATH" | |
| # Test scripts can be executed (basic syntax check) | |
| jplotter --help >/dev/null 2>&1 && echo "✅ jplotter executable" || echo "❌ jplotter failed" | |
| standardplots --help >/dev/null 2>&1 && echo "✅ standardplots executable" || echo "❌ standardplots failed" | |
| klk1 --help >/dev/null 2>&1 && echo "✅ klk1 executable" || echo "❌ klk1 failed" | |
| # - name: Test with pytest | |
| # run: | | |
| # pytest |