Add experimental status note, consolidated metadata docs, and Zarr.jl… #4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: Julia ${{ matrix.julia-version }} - ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| julia-version: | |
| - "1.10" # LTS | |
| - "1" # stable | |
| os: | |
| - ubuntu-latest | |
| - macos-latest | |
| - windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: julia-actions/setup-julia@v2 | |
| with: | |
| version: ${{ matrix.julia-version }} | |
| - uses: julia-actions/cache@v2 | |
| # Install Rust toolchain for building the companion crate | |
| - uses: dtolnay/rust-toolchain@stable | |
| # Build the Rust cdylib (with icechunk feature, enabled by default) | |
| - name: Build libzarrs_jl | |
| run: julia --project deps/build.jl | |
| # Run core tests | |
| - name: Run tests | |
| uses: julia-actions/julia-runtest@v1 | |
| test-icechunk: | |
| name: Icechunk tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: julia-actions/setup-julia@v2 | |
| with: | |
| version: "1" | |
| - uses: julia-actions/cache@v2 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Build libzarrs_jl | |
| run: julia --project deps/build.jl | |
| - name: Instantiate test environment | |
| run: julia --project -e 'using Pkg; Pkg.instantiate()' | |
| - name: Run Icechunk tests | |
| run: julia --project -e ' | |
| using Pkg; Pkg.test(test_args=["icechunk"])' | |
| test-no-icechunk: | |
| name: Tests without icechunk feature | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: julia-actions/setup-julia@v2 | |
| with: | |
| version: "1" | |
| - uses: julia-actions/cache@v2 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Build libzarrs_jl without icechunk | |
| run: | | |
| cd deps/zarrs_jl | |
| cargo build --release --no-default-features | |
| cd ../.. | |
| julia --project deps/build.jl | |
| - name: Run core tests (no icechunk) | |
| run: julia --project -e ' | |
| using Pkg; Pkg.test(test_args=["core"])' | |
| compat: | |
| name: Cross-language compatibility | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: julia-actions/setup-julia@v2 | |
| with: | |
| version: "1" | |
| - uses: julia-actions/cache@v2 | |
| - uses: dtolnay/rust-toolchain@stable | |
| # Install uv for Python fixture generation | |
| - uses: astral-sh/setup-uv@v5 | |
| - name: Build libzarrs_jl | |
| run: julia --project deps/build.jl | |
| - name: Instantiate test environment | |
| run: julia --project -e 'using Pkg; Pkg.instantiate()' | |
| # Generate fixtures | |
| - name: Generate Python fixtures | |
| run: uv run test/fixtures/generate_python.py | |
| - name: Generate Zarrs.jl fixtures | |
| run: julia --project test/fixtures/generate_zarrs_jl.jl | |
| # Run compatibility tests | |
| - name: Python compatibility tests | |
| run: julia --project -e ' | |
| using Pkg; Pkg.test(test_args=["compat_zarr_python"])' | |
| - name: Zarrs.jl self-compatibility tests | |
| run: julia --project -e ' | |
| using Pkg; Pkg.test(test_args=["compat_zarrs"])' | |
| docs: | |
| name: Documentation | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| statuses: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: julia-actions/setup-julia@v2 | |
| with: | |
| version: "1" | |
| - uses: julia-actions/cache@v2 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Build libzarrs_jl | |
| run: julia --project deps/build.jl | |
| - name: Install dependencies | |
| run: julia --project=docs -e ' | |
| using Pkg; | |
| Pkg.develop(PackageSpec(path=pwd())); | |
| Pkg.instantiate()' | |
| - name: Build and deploy docs | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} | |
| run: julia --project=docs docs/make.jl |