# A daily job to run slow tests with MLFLOW_RUN_SLOW_TESTS environment variable set to true. name: MLflow Slow Tests on: pull_request: paths: # Run this workflow in PR when relevant files change - ".github/workflows/slow-tests.yml" - "tests/docker/**" - "tests/pyfunc/docker/**" workflow_dispatch: inputs: repository: description: > [Optional] Repository name with owner. For example, mlflow/mlflow. Defaults to the repository that triggered a workflow. required: false default: "" ref: description: > [Optional] The branch, tag or SHA to checkout. When checking out the repository that triggered a workflow, this defaults to the reference or SHA for that event. Otherwise, uses the default branch. required: false default: "" schedule: # Run this workflow daily at 13:00 UTC - cron: "0 13 * * *" concurrency: group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} cancel-in-progress: true defaults: run: shell: bash env: MLFLOW_RUN_SLOW_TESTS: "true" MLFLOW_HOME: ${{ github.workspace }} PIP_EXTRA_INDEX_URL: https://download.pytorch.org/whl/cpu PIP_CONSTRAINT: ${{ github.workspace }}/requirements/constraints.txt permissions: {} jobs: docker-build: runs-on: ubuntu-latest timeout-minutes: 120 permissions: contents: read if: (github.event_name == 'schedule' && github.repository == 'mlflow/dev') || github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && (github.event.pull_request.draft == false || github.event.pull_request.user.login == 'Copilot' && github.event.pull_request.user.type == 'Bot')) strategy: fail-fast: false matrix: group: [1, 2, 3] include: - splits: 3 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - uses: ./.github/actions/free-disk-space - uses: ./.github/actions/untracked - uses: ./.github/actions/setup-python - uses: ./.github/actions/setup-pyenv - uses: ./.github/actions/setup-java - name: Install dependencies run: | uv sync --extra extras uv pip install \ -r requirements/test-requirements.txt \ -r requirements/extra-ml-requirements.txt \ langchain_experimental "pyarrow<18" - uses: ./.github/actions/show-versions - name: Run tests env: SPLITS: ${{ matrix.splits }} GROUP: ${{ matrix.group }} run: | uv run --no-sync pytest --splits=$SPLITS --group=$GROUP tests/docker tests/pyfunc/docker