Merge pull request #11 from mindthemath/feat/es2017 #77
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
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| tags: ["*"] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| jobs: | |
| build-js: | |
| name: Build JavaScript | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install | |
| - name: Build production bundle | |
| run: bun run build | |
| - name: Check formatting | |
| run: make fmt-check | |
| - name: Install Playwright browsers | |
| run: bunx playwright install --with-deps | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| - name: Run tests | |
| run: bun run test:js | |
| - name: Upload JS bundle | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: js-bundle | |
| path: hiplot/static/built/ | |
| retention-days: 7 | |
| typecheck-pytest: | |
| name: ${{ format('Type Check & Tests (Python {0})', matrix.python-version) }} | |
| needs: build-js | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.9", "3.12", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download JS bundle | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: js-bundle | |
| path: hiplot/static/built/ | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| run: uv python install ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: uv sync | |
| - name: Run ty | |
| run: make check | |
| - name: Run pytest | |
| run: uv run pytest hiplot --durations=10 | |
| - name: Test CLI commands | |
| run: | | |
| uv sync | |
| uv run --extra server hiplot --help | |
| uv run hiplot-render --help | |
| # new alias for hiplot-render: hiplot-mm | |
| uv run hiplot-mm --help | |
| package-verify: | |
| name: Verify Package Build | |
| needs: build-js | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download JS bundle | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: js-bundle | |
| path: hiplot/static/built/ | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| - name: Set up Python | |
| run: uv python install 3.12 | |
| - name: Build package | |
| run: uv build | |
| - name: Verify wheel install | |
| run: | | |
| uv venv test-wheel | |
| VIRTUAL_ENV=test-wheel uv pip install dist/*.whl | |
| test-wheel/bin/python -c "import hiplot as hip; hip.Experiment" | |
| test-wheel/bin/python -c "import hiplot as hip; print(hip.__version__)" | |
| test-wheel/bin/hiplot-render demo --format html > /dev/null | |
| - name: Verify sdist install | |
| run: | | |
| uv venv test-sdist | |
| VIRTUAL_ENV=test-sdist uv pip install dist/*.tar.gz | |
| test-sdist/bin/python -c "import hiplot as hip; hip.Experiment" | |
| test-sdist/bin/hiplot-render demo --format html > /dev/null | |
| - name: Upload package artifacts | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: python-package | |
| path: dist/ | |
| retention-days: 7 | |
| windows-test: | |
| name: Windows Tests | |
| needs: build-js | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download JS bundle | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: js-bundle | |
| path: hiplot/static/built/ | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| - name: Set up Python | |
| run: uv python install 3.12 | |
| - name: Install dependencies | |
| run: uv sync | |
| - name: Run pytest | |
| run: uv run pytest hiplot | |
| - name: Test CLI commands | |
| run: | | |
| uv sync | |
| uv run --extra server hiplot --help | |
| uv run hiplot-render --help | |
| # new alias for hiplot-render: hiplot-mm | |
| uv run hiplot-mm --help |