Auto CI #958
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 do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node | |
| # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs | |
| name: Auto CI | |
| on: | |
| push: | |
| branches: [ "main", "dev" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| workflow_dispatch: | |
| jobs: | |
| build-js: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [22.x] | |
| # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: 'recursive' | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: 'yarn' | |
| cache-dependency-path: ./app/yarn.lock | |
| - name: Try Compiling | |
| working-directory: ./ | |
| run: | | |
| chmod u+x ./scripts/compile.sh | |
| ./scripts/compile.sh | |
| - name: Try Frontend Smoke Test | |
| working-directory: ./app | |
| run: | | |
| yarn playwright install --with-deps chromium | |
| yarn test:front_end | |
| - name: Uploading dist | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: pygwalker-app | |
| path: ./pygwalker/templates/dist/* | |
| build-py: | |
| needs: build-js | |
| timeout-minutes: 90 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ['3.10', '3.11', '3.12', '3.13'] | |
| os-version: [ubuntu-latest, windows-latest, macos-latest] | |
| runs-on: ${{ matrix.os-version }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download PyGWalkerApp | |
| uses: actions/download-artifact@v4 | |
| id: build-py | |
| with: | |
| name: pygwalker-app | |
| path: ./pygwalker/templates/dist | |
| - name: Use Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Use Node.js 22.x | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22.x | |
| cache: 'yarn' | |
| cache-dependency-path: ./app/yarn.lock | |
| - name: Ensure Yarn | |
| run: | | |
| npm install -g yarn | |
| - name: Download test data | |
| working-directory: ./ | |
| run: | | |
| chmod u+x ./scripts/test-init.py | |
| python ./scripts/test-init.py | |
| - name: Try Installing | |
| working-directory: ./ | |
| env: | |
| PIP_ONLY_BINARY: "duckdb" | |
| run: | | |
| pip install ".[export]" | |
| - name: Pin Pydantic v1 compatibility leg | |
| if: ${{ matrix.os-version == 'ubuntu-latest' && matrix.python-version == '3.10' }} | |
| run: | | |
| pip install "pydantic==1.10.15" | |
| - name: Try Install Modin In Linux Os | |
| if: ${{ matrix.os-version == 'ubuntu-latest' && matrix.python-version == '3.11' }} | |
| run: | | |
| pip install "numpy<2" "pandas<2.1" | |
| pip install aiohttp==3.8.6 | |
| pip install "modin==0.23.1" "modin[ray]==0.23.1" | |
| pip install pydantic==1.10.9 | |
| - name: Try Running | |
| working-directory: ./tests/ | |
| run: | | |
| pip install ipykernel nbmake pandas polars pytest | |
| python -m ipykernel install --name python --user | |
| jupyter kernelspec list | |
| python -c "from pathlib import Path; import subprocess, sys; notebooks = sorted(str(path) for path in Path('.').glob('*.ipynb')); subprocess.run([sys.executable, '-m', 'pytest', '--nbmake', '--nbmake-kernel=python', *notebooks], check=True)" | |
| - name: Try Pytest | |
| timeout-minutes: 20 | |
| working-directory: ./ | |
| run: | | |
| pip install duckdb_engine | |
| pip install pytest ruff starlette polars tornado | |
| ruff check pygwalker tests scripts bin pygwalker_tools | |
| ruff format --check pygwalker tests scripts bin pygwalker_tools | |
| python -X faulthandler -W error::DeprecationWarning:pygwalker -m pytest -o faulthandler_timeout=300 tests |