Mig just uv ruff part4 (#1672) #640
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: Main CI Pipeline | ||
| on: | ||
| push: | ||
| branches: [main] | ||
| pull_request: | ||
| branches: [main] | ||
| workflow_dispatch: | ||
| env: | ||
| UV_CACHE_DIR: ${{ github.workspace }}/.uv-cache | ||
| jobs: | ||
| quality-checks: | ||
| name: Code Quality Checks | ||
| runs-on: ubuntu-24.04 | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v4 | ||
| - name: Install Just | ||
| run: | | ||
| curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin | ||
| echo "$HOME/bin" >> $GITHUB_PATH | ||
| - name: Install uv | ||
| run: | | ||
| curl -LsSf https://astral.sh/uv/install.sh | sh | ||
| source $HOME/.cargo/env | ||
| echo "$HOME/.cargo/bin" >> $GITHUB_PATH | ||
| - name: Verify toolchain installation | ||
| run: | | ||
| just --version | ||
| uv --version | ||
| - name: Setup uv cache | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: ${{ env.UV_CACHE_DIR }} | ||
| key: | ||
| uv-cache-ubuntu-quality-${{ | ||
| hashFiles('pyproject.toml') }} | ||
| restore-keys: | | ||
| uv-cache-ubuntu-quality- | ||
| - name: Create Python environment and install tools | ||
| run: | | ||
| just create cpy314 | ||
| just install-tools cpy314 | ||
| - name: Code formatting check | ||
| run: just check-format cpy314 | ||
| - name: Flake8 linting | ||
| run: just flake8 cpy314 | ||
| # FIXME: Found 239 errors in 45 files (checked 163 source files) | ||
| # - name: Type checking with mypy | ||
| # run: just check-typing cpy314 | ||
| documentation: | ||
| name: Documentation Build | ||
| runs-on: ubuntu-24.04 | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v4 | ||
| - name: Install Just | ||
| run: | | ||
| curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin | ||
| echo "$HOME/bin" >> $GITHUB_PATH | ||
| - name: Install uv | ||
| run: | | ||
| curl -LsSf https://astral.sh/uv/install.sh | sh | ||
| source $HOME/.cargo/env | ||
| echo "$HOME/.cargo/bin" >> $GITHUB_PATH | ||
| - name: Verify toolchain installation | ||
| run: | | ||
| just --version | ||
| uv --version | ||
| - name: Setup uv cache | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: ${{ env.UV_CACHE_DIR }} | ||
| key: | ||
| uv-cache-ubuntu-docs-${{ hashFiles('pyproject.toml') | ||
| }} | ||
| restore-keys: | | ||
| uv-cache-ubuntu-docs- | ||
| - name: Create Python environment and install tools | ||
| run: | | ||
| just create cpy314 | ||
| just install-tools cpy314 | ||
| - name: Build documentation | ||
| run: just docs cpy314 | ||
| - name: Upload documentation artifacts | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: documentation | ||
| path: docs/_build/html/ | ||
| retention-days: 14 | ||
| # FIXME: Sphinx error: | ||
| # Builder name spelling not registered or available through entry point | ||
| # Error: Process completed with exit code 2. | ||
| # | ||
| # spellcheck: | ||
| # name: Documentation Spellcheck | ||
| # runs-on: ubuntu-24.04 | ||
| # steps: | ||
| # - name: Checkout code | ||
| # uses: actions/checkout@v4 | ||
| # - name: Install Just | ||
| # run: | | ||
| # curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin | ||
| # echo "$HOME/bin" >> $GITHUB_PATH | ||
| # - name: Install uv | ||
| # run: | | ||
| # curl -LsSf https://astral.sh/uv/install.sh | sh | ||
| # source $HOME/.cargo/env | ||
| # echo "$HOME/.cargo/bin" >> $GITHUB_PATH | ||
| # - name: Install system dependencies for spellcheck | ||
| # run: | | ||
| # sudo apt-get update | ||
| # sudo apt-get install -y enchant-2 libenchant-2-dev | ||
| # - name: Verify toolchain installation | ||
| # run: | | ||
| # just --version | ||
| # uv --version | ||
| # - name: Setup uv cache | ||
| # uses: actions/cache@v4 | ||
| # with: | ||
| # path: ${{ env.UV_CACHE_DIR }} | ||
| # key: | ||
| # uv-cache-ubuntu-spell-${{ hashFiles('pyproject.toml') | ||
| # }} | ||
| # restore-keys: | | ||
| # uv-cache-ubuntu-spell- | ||
| # - name: Create Python environment and install tools | ||
| # run: | | ||
| # just create cpy314 | ||
| # just install-tools cpy314 | ||
| # - name: Run spellcheck | ||
| # run: | | ||
| # # Navigate to docs directory and run sphinx spellcheck | ||
| # cd docs && ../.venvs/cpy314/bin/sphinx-build -b spelling . _spelling | ||
| # FIXME: 1 warning, 52 errors in 0.82s | ||
| # | ||
| # tests: | ||
| # name: Test Suite | ||
| # runs-on: ubuntu-24.04 | ||
| # steps: | ||
| # - name: Checkout code | ||
| # uses: actions/checkout@v4 | ||
| # - name: Install Just | ||
| # run: | | ||
| # curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin | ||
| # echo "$HOME/bin" >> $GITHUB_PATH | ||
| # - name: Install uv | ||
| # run: | | ||
| # curl -LsSf https://astral.sh/uv/install.sh | sh | ||
| # source $HOME/.cargo/env | ||
| # echo "$HOME/.cargo/bin" >> $GITHUB_PATH | ||
| # - name: Verify toolchain installation | ||
| # run: | | ||
| # just --version | ||
| # uv --version | ||
| # - name: Setup uv cache | ||
| # uses: actions/cache@v4 | ||
| # with: | ||
| # path: ${{ env.UV_CACHE_DIR }} | ||
| # key: | ||
| # uv-cache-ubuntu-test-${{ hashFiles('pyproject.toml') | ||
| # }} | ||
| # restore-keys: | | ||
| # uv-cache-ubuntu-test- | ||
| # - name: Create Python environment and install package | ||
| # run: | | ||
| # just create cpy314 | ||
| # just install-tools cpy314 | ||
| # just install-dev cpy314 | ||
| # - name: Run test suite | ||
| # run: just test cpy314 | ||
| build-schema: | ||
| name: FlatBuffers Schema Build | ||
| runs-on: ubuntu-24.04 | ||
| strategy: | ||
| matrix: | ||
| python-env: [cpy314, cpy311, pypy311] | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v4 | ||
| - name: Install Just | ||
| run: | | ||
| curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin | ||
| echo "$HOME/bin" >> $GITHUB_PATH | ||
| - name: Install uv | ||
| run: | | ||
| curl -LsSf https://astral.sh/uv/install.sh | sh | ||
| source $HOME/.cargo/env | ||
| echo "$HOME/.cargo/bin" >> $GITHUB_PATH | ||
| - name: Install FlatBuffers compiler | ||
| run: | | ||
| sudo apt-get update | ||
| sudo apt-get install -y flatbuffers-compiler | ||
| - name: Verify toolchain installation | ||
| run: | | ||
| just --version | ||
| uv --version | ||
| flatc --version | ||
| - name: Setup uv cache | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: ${{ env.UV_CACHE_DIR }} | ||
| key: | ||
| uv-cache-ubuntu-fbs-${{ matrix.python-env }}-${{ | ||
| hashFiles('pyproject.toml') }} | ||
| restore-keys: | | ||
| uv-cache-ubuntu-fbs-${{ matrix.python-env }}- | ||
| uv-cache-ubuntu-fbs- | ||
| - name: Create Python environment | ||
| run: just create ${{ matrix.python-env }} | ||
| - name: Build FlatBuffers schema | ||
| run: just build-fbs | ||
| - name: Upload FlatBuffers artifacts | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: flatbuffers-schema-${{ matrix.python-env }} | ||
| path: autobahn/wamp/gen/ | ||
| retention-days: 7 | ||
| build-package: | ||
| name: Package Build | ||
| runs-on: ubuntu-24.04 | ||
| needs: [quality-checks, tests, build-schema] | ||
| strategy: | ||
| matrix: | ||
| python-env: [cpy314, cpy311, pypy311] | ||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v4 | ||
| - name: Install Just | ||
| run: | | ||
| curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/bin | ||
| echo "$HOME/bin" >> $GITHUB_PATH | ||
| - name: Install uv | ||
| run: | | ||
| curl -LsSf https://astral.sh/uv/install.sh | sh | ||
| source $HOME/.cargo/env | ||
| echo "$HOME/.cargo/bin" >> $GITHUB_PATH | ||
| - name: Verify toolchain installation | ||
| run: | | ||
| just --version | ||
| uv --version | ||
| - name: Setup uv cache | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: ${{ env.UV_CACHE_DIR }} | ||
| key: | ||
| uv-cache-ubuntu-build-${{ matrix.python-env }}-${{ | ||
| hashFiles('pyproject.toml') }} | ||
| restore-keys: | | ||
| uv-cache-ubuntu-build-${{ matrix.python-env }}- | ||
| uv-cache-ubuntu-build- | ||
| - name: Create Python environment and install tools | ||
| run: | | ||
| just create ${{ matrix.python-env }} | ||
| just install-tools ${{ matrix.python-env }} | ||
| - name: Build package | ||
| run: just build ${{ matrix.python-env }} | ||
| - name: List built artifacts | ||
| run: | | ||
| echo "Built artifacts for ${{ matrix.python-env }}:" | ||
| ls -la dist/ | ||
| - name: Upload build artifacts | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: package-${{ matrix.python-env }} | ||
| path: dist/ | ||
| retention-days: 14 | ||