diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7c6f1ed50..81ad59e80 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -173,6 +173,69 @@ jobs: - name: Run Tests run: uv run --no-sync pytest tests/ + # ------------------------------------------------------------------- + # First Party Packages + # ------------------------------------------------------------------- + + test_first_party_packages: + name: Test ${{ matrix.repo-name }} + needs: check_python_linting + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + repo-name: + - tabpfn-extensions + - tabpfn-time-series + env: + TABPFN_MODEL_CACHE_DIR: ${{ github.workspace }}/model_cache + HF_TOKEN: ${{ vars.TABPFN_2_5_HF_TOKEN }} + + steps: + - name: Checkout TabPFN at current ref + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + with: + path: TabPFN + + - name: Checkout ${{ matrix.repo-name }} + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + with: + repository: PriorLabs/${{ matrix.repo-name }} + path: ${{ matrix.repo-name }} + + - name: Set up Python + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 + with: + python-version: "3.13" + + - name: Set up uv + uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867 # v7.1.6 + + - name: Restore model cache + id: restore-model-cache + uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 + with: + path: ${{ github.workspace }}/model_cache + key: model-cache-${{ hashFiles('model_cache/**') }} + restore-keys: | + model-cache- + enableCrossOsArchive: true + # We don't save the model cache in this workflow as the main CI workflow already + # saves it. + + - name: Download models from Hugging Face + run: | + cd TabPFN + uv run python scripts/download_all_models.py + cd .. + + - name: Install dependencies and run tests + env: + FAST_TEST_MODE: 1 # Configures -extensions to run a smaller set of tests. + run: | + cd ${{ matrix.repo-name }} + uv run --with ../TabPFN --all-extras pytest -m "not uses_tabpfn_client" + # ------------------------------------------------------------------- # GPU: To save compute we only want to execute this workflow once # a CPU workflow has passed. Hence, this workflow depends on the @@ -180,7 +243,8 @@ jobs: # ------------------------------------------------------------------- test_gpu: name: Test on GPU - needs: test_ubuntu_latest_314 + needs: + - test_ubuntu_latest_314 strategy: fail-fast: false diff --git a/.github/workflows/first_party_compatibility.yml b/.github/workflows/first_party_compatibility.yml deleted file mode 100644 index 63598aa5e..000000000 --- a/.github/workflows/first_party_compatibility.yml +++ /dev/null @@ -1,70 +0,0 @@ -# Checks that our first-party packages that depend on TabPFN work correctly. -name: First Party Compatibility -on: - pull_request: - push: - branches: [main] - workflow_dispatch: - -concurrency: - group: compatibility-${{ github.ref }} - cancel-in-progress: true - -jobs: - test_first_party_packages: - name: Test ${{ matrix.repo-name }} - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - repo-name: - - tabpfn-extensions - - tabpfn-time-series - env: - TABPFN_MODEL_CACHE_DIR: ${{ github.workspace }}/model_cache - HF_TOKEN: ${{ vars.TABPFN_2_5_HF_TOKEN }} - - steps: - - name: Checkout TabPFN at current ref - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - with: - path: TabPFN - - - name: Checkout ${{ matrix.repo-name }} - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - with: - repository: PriorLabs/${{ matrix.repo-name }} - path: ${{ matrix.repo-name }} - - - name: Set up Python - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 - with: - python-version: "3.13" - - - name: Set up uv - uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867 # v7.1.6 - - - name: Restore model cache - id: restore-model-cache - uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 - with: - path: ${{ github.workspace }}/model_cache - key: model-cache-${{ hashFiles('model_cache/**') }} - restore-keys: | - model-cache- - enableCrossOsArchive: true - # We don't save the model cache in this workflow as the main CI workflow already - # saves it. - - - name: Download models from Hugging Face - run: | - cd TabPFN - uv run python scripts/download_all_models.py - cd .. - - - name: Install dependencies and run tests - env: - FAST_TEST_MODE: 1 # Configures -extensions to run a smaller set of tests. - run: | - cd ${{ matrix.repo-name }} - uv run --with ../TabPFN --all-extras pytest -m "not uses_tabpfn_client"