Skip to content

feat!: support opt-in S3 URLs and simplify protocol registration #239

feat!: support opt-in S3 URLs and simplify protocol registration

feat!: support opt-in S3 URLs and simplify protocol registration #239

Workflow file for this run

name: Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_call:
workflow_dispatch:
permissions:
contents: read
env:
OPENDAL_S3_ENDPOINT: http://127.0.0.1:9000
OPENDAL_S3_REGION: us-east-1
OPENDAL_S3_BUCKET: test-bucket
OPENDAL_S3_ACCESS_KEY_ID: minioadmin
OPENDAL_S3_SECRET_ACCESS_KEY: minioadmin
jobs:
quality:
name: Quality
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: "3.12"
- name: Install just
uses: extractions/setup-just@v4
with:
just-version: "1.58.0"
- name: Install the project
run: just install
- name: Run quality checks
run: just check
unit:
name: Unit (Python ${{ matrix.python-version }})
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
python-version: ["3.12", "3.13", "3.14"]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install just
uses: extractions/setup-just@v4
with:
just-version: "1.58.0"
- name: Install the project
run: just install
- name: Run unit tests
run: >-
just unit
--ignore=tests/integration/{airflow,kerchunk,prefect,rechunker,torchdata,xarray,zarr}
latest-contract:
name: Contract (latest fsspec)
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: "3.12"
- name: Install just
uses: extractions/setup-just@v4
with:
just-version: "1.58.0"
- name: Install the locked project
run: just install
- name: Upgrade contract dependencies
run: uv pip install --upgrade fsspec s3fs
- name: Run contract tests
env:
UV_NO_SYNC: "1"
run: just integration tests/core/test_fsspec_abstract.py
integration:
name: MinIO integration
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: "3.12"
- name: Install just
uses: extractions/setup-just@v4
with:
just-version: "1.58.0"
- name: Install the project
run: just install
- name: Run integration tests
run: >-
just integration
--ignore=tests/integration/{airflow,kerchunk,prefect,rechunker,torchdata,xarray,zarr}
downstream-integration:
name: Downstream integration (${{ matrix.name }})
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
include:
- name: Airflow
group: integration-airflow
tests: tests/integration/airflow
- name: Kerchunk
group: integration-kerchunk
tests: tests/integration/kerchunk
- name: Prefect
group: integration-prefect
tests: tests/integration/prefect
- name: Rechunker
group: integration-rechunker
tests: tests/integration/rechunker
- name: TorchData
group: integration-torchdata
tests: tests/integration/torchdata
- name: Xarray and Zarr
group: integration-xarray
tests: tests/integration/xarray tests/integration/zarr
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: "3.12"
- name: Install just
uses: extractions/setup-just@v4
with:
just-version: "1.58.0"
- name: Install downstream integration dependencies
run: uv sync --locked --dev --group ${{ matrix.group }}
- name: Run downstream integration tests
env:
UV_NO_SYNC: "1"
run: just integration ${{ matrix.tests }}