CI: Run code checks with Pixi #275
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: Code Checks | ||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
| - 3.0.x | ||
| pull_request: | ||
| branches: | ||
| - main | ||
| - 3.0.x | ||
| defaults: | ||
| run: | ||
| shell: bash -euox pipefail {0} | ||
| permissions: {} | ||
| jobs: | ||
| doctest: | ||
| name: Doctests | ||
| runs-on: ubuntu-24.04 | ||
| permissions: | ||
| contents: read | ||
| concurrency: | ||
| # https://github.community/t/concurrecy-not-work-for-push/183068/7 | ||
| group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-doctests | ||
| cancel-in-progress: true | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| with: | ||
| fetch-depth: 0 | ||
| - name: Create virtual environment with Pixi | ||
| uses: ./.github/actions/setup-pixi | ||
| with: | ||
| environment: "doctests" | ||
| - name: Build pandas | ||
| run: | | ||
| pixi run \ | ||
| --environment doctests \ | ||
| build-pandas \ | ||
| --editable \ | ||
| -Csetup-args="--werror" | ||
| - name: Run doctests | ||
| env: | ||
| # Avoids NumPy scalar reprs in docstrings. | ||
| PANDAS_FUTURE_PYTHON_SCALARS="1" | ||
| run: | | ||
| pixi run \ | ||
| --environment doctests \ | ||
| ci-test-pandas \ | ||
| '--doctest-modules --doctest-cython --ignore=pandas/tests' \ | ||
| 0 \ | ||
| pandas | ||
| - name: Run scripts tests | ||
| run: pixi run --environment doctests ci-scripts-tests | ||
| type-checking: | ||
| name: Type Checking | ||
| runs-on: ubuntu-24.04 | ||
| permissions: | ||
| contents: read | ||
| concurrency: | ||
| # https://github.community/t/concurrecy-not-work-for-push/183068/7 | ||
| group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-typechecking | ||
| cancel-in-progress: true | ||
| steps: | ||
| - name: Create virtual environment with Pixi | ||
| uses: ./.github/actions/setup-pixi | ||
| with: | ||
| environment: "typing" | ||
| - name: Checkout | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| with: | ||
| fetch-depth: 0 | ||
| - name: Build pandas | ||
| run: | | ||
| pixi run \ | ||
| --environment typing \ | ||
| build-pandas \ | ||
| --editable \ | ||
| -Csetup-args="--werror" | ||
| # - name: Use existing environment for type checking | ||
| # run: | | ||
| # echo $PATH >> $GITHUB_PATH | ||
| # echo "PYTHONHOME=$PYTHONHOME" >> $GITHUB_ENV | ||
| # echo "PYTHONPATH=$PYTHONPATH" >> $GITHUB_ENV | ||
| # if: ${{ steps.build.outcome == 'success' && always() }} | ||
| - name: Typing Checks | ||
| run: pixi run --environment typing ci-typing | ||
| asv-benchmarks: | ||
| name: ASV Benchmarks | ||
| runs-on: ubuntu-24.04 | ||
| permissions: | ||
| contents: read | ||
| concurrency: | ||
| # https://github.community/t/concurrecy-not-work-for-push/183068/7 | ||
| group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-asv-benchmarks | ||
| cancel-in-progress: true | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| with: | ||
| fetch-depth: 0 | ||
| - name: Create virtual environment with Pixi | ||
| uses: ./.github/actions/setup-pixi | ||
| with: | ||
| environment: "asv" | ||
| - name: Build pandas | ||
| run: | | ||
| pixi run \ | ||
| --environment asv \ | ||
| build-pandas \ | ||
| --editable \ | ||
| -Csetup-args="--werror" | ||
| - name: Run ASV benchmarks | ||
| run: pixi run --environment asv ci-asv | ||
| requirements-dev-text-installable: | ||
| name: Test install requirements-dev.txt | ||
| runs-on: ubuntu-24.04 | ||
| permissions: | ||
| contents: read | ||
| concurrency: | ||
| # https://github.community/t/concurrecy-not-work-for-push/183068/7 | ||
| group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-requirements-dev-text-installable | ||
| cancel-in-progress: true | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| - name: Setup Python | ||
| id: setup_python | ||
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 | ||
| with: | ||
| python-version: '3.11' | ||
| cache: 'pip' | ||
| pip-install: requirements-dev.txt | ||
| cache-dependency-path: 'requirements-dev.txt' | ||
| - name: Check Pip Cache Hit | ||
| run: echo ${{ steps.setup_python.outputs.cache-hit }} | ||