name: fs2db on: push: branches: - master - branch-[0-9]+.[0-9]+ pull_request: types: - opened - synchronize - reopened paths-ignore: - "docs/**" - "**.md" - "dev/clint/**" - ".github/workflows/docs.yml" - ".github/workflows/preview-docs.yml" - "mlflow/server/js/**" - ".github/workflows/js.yml" - ".claude/**" concurrency: group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} cancel-in-progress: true defaults: run: shell: bash permissions: {} jobs: e2e-tests: runs-on: ubuntu-latest timeout-minutes: 30 permissions: contents: read if: 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: mlflow-version: - "2.22.4" # Latest 2.x release - "3.6.0" # First version after FileStore deprecation steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - uses: ./.github/actions/untracked - uses: ./.github/actions/setup-python - name: Install MLflow ${{ matrix.mlflow-version }} env: MLFLOW_VERSION: ${{ matrix.mlflow-version }} run: uv run --with "mlflow==$MLFLOW_VERSION" --no-project mlflow --version - name: Generate synthetic data for MLflow ${{ matrix.mlflow-version }} env: MLFLOW_VERSION: ${{ matrix.mlflow-version }} run: | uv run --with "mlflow==$MLFLOW_VERSION" --no-project python -I \ fs2db/src/generate_synthetic_data.py --output /tmp/fs2db/$MLFLOW_VERSION/ --size full - name: Run migration for MLflow ${{ matrix.mlflow-version }} env: MLFLOW_VERSION: ${{ matrix.mlflow-version }} run: | uv run mlflow migrate-filestore \ --source /tmp/fs2db/$MLFLOW_VERSION/ \ --target sqlite:////tmp/fs2db/$MLFLOW_VERSION/migrated.db \ --no-progress unit-tests: runs-on: ubuntu-latest timeout-minutes: 30 permissions: contents: read if: 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') steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - uses: ./.github/actions/untracked - uses: ./.github/actions/setup-python - name: Run fs2db pytest tests run: uv run pytest tests/store/fs2db