diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bab0cd232..29dc611b4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -50,7 +50,7 @@ jobs: - name: Lint code run: nox -s lint - tests: + test-open-source: timeout-minutes: 25 runs-on: ${{ matrix.os }} strategy: @@ -124,4 +124,74 @@ jobs: run: nox -s build - name: Build docs - run: nox -s docs + run: nox -s docs + + + test-studio: + runs-on: ubuntu-latest-16-cores + strategy: + matrix: + pyv: ['3.12'] + group: [1, 2, 3, 4, 5, 6] + services: + postgres: + image: postgres:16.3 + ports: + - 5432:5432 + env: + POSTGRES_USER: test + POSTGRES_DB: database + POSTGRES_HOST_AUTH_METHOD: trust + clickhouse: + image: clickhouse/clickhouse-server:24 + ports: + - 8123:8123 + - 9010:9000 + env: + CLICKHOUSE_DB: studio_local_db + CLICKHOUSE_USER: studio_local + CLICKHOUSE_PASSWORD: ch123456789! + CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1 + redis: + image: redis:7.2.5 + ports: + - 6379:6379 + steps: + + - name: Check out Studio + uses: actions/checkout@v4 + with: + fetch-depth: 0 + repository: iterative/studio + ref: develop + token: ${{ secrets.ITERATIVE_STUDIO_READ_ACCESS_TOKEN }} + + - name: Check out repository + uses: actions/checkout@v4 + with: + path: './backend/datachain' + fetch-depth: 0 + + - name: Set up Python ${{ matrix.pyv }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.pyv }} + cache: 'pip' + + - name: Install uv + run: | + python -m pip install --upgrade uv + uv --version + + - name: Install dependencies + run: uv pip install --system ./backend/datachain_server[datachain,tests] + + - name: Run tests + # Generate `.test_durations` file with `pytest --store-durations --durations-path ../.github/.test_durations ...` + run: > + pytest + --config-file=pyproject.toml -rsx + --cov-branch --cov=backend/datachain_server --cov-report=xml:coverage.xml + --splits=6 --group=${{ matrix.group }} --durations-path=../../.github/.test_durations + tests ../datachain/tests + working-directory: backend/datachain_server diff --git a/.github/workflows/wat.yml b/.github/workflows/wat.yml new file mode 100644 index 000000000..48ee8f6b3 --- /dev/null +++ b/.github/workflows/wat.yml @@ -0,0 +1,69 @@ + test-datachain: + runs-on: ubuntu-latest-16-cores + needs: check-changes + if: ${{ github.event_name != 'pull_request' || needs.check-changes.outputs.datachain == 'true' }} + strategy: + matrix: + pyv: ['3.12'] + group: [1, 2, 3, 4, 5, 6] + services: + postgres: + image: postgres:16.3 + ports: + - 5432:5432 + env: + POSTGRES_USER: test + POSTGRES_DB: database + POSTGRES_HOST_AUTH_METHOD: trust + clickhouse: + image: clickhouse/clickhouse-server:24 + ports: + - 8123:8123 + - 9010:9000 + env: + CLICKHOUSE_DB: studio_local_db + CLICKHOUSE_USER: studio_local + CLICKHOUSE_PASSWORD: ch123456789! + CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1 + redis: + image: redis:7.2.5 + ports: + - 6379:6379 + steps: + - name: Check out the repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Check out DVCX repository + uses: actions/checkout@v4 + with: + repository: iterative/dvcx + ref: 0.2.1 # updated by make update_datachain + token: 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 # trufflehog:ignore + path: './backend/dvcx' + fetch-depth: 0 + + - name: Set up Python ${{ matrix.pyv }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.pyv }} + cache: 'pip' + + - name: Install uv + run: | + python -m pip install --upgrade uv + uv --version + + - name: Install dependencies + run: uv pip install --system ./backend/datachain_server[datachain,tests] + + - name: Run tests + # Generate `.test_durations` file with `pytest --store-durations --durations-path ../.github/.test_durations ...` + run: > + pytest + --config-file=pyproject.toml -rsx + --cov-branch --cov=backend/datachain_server --cov-report=xml:coverage.xml + --splits=6 --group=${{ matrix.group }} --durations-path=../../.github/.test_durations + tests ../dvcx/tests + working-directory: backend/datachain_server