chore(deps): update supporting dependencies #234
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: | |
| # Cancel a PR's in-flight runs when it is pushed to again. | |
| # Pushes to main fall back to the run id, so they are never cancelled. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v10.0.1 | |
| - name: Install dependencies | |
| run: uv sync --all-extras | |
| - name: Ruff check | |
| run: uv run ruff check tests/ scripts/ | |
| - name: Ruff format | |
| run: uv run ruff format --check tests/ scripts/ | |
| - name: Version consistency | |
| run: uv run pytest tests/test_version_consistency.py -v | |
| # Verify that all pinned components can be installed together | |
| install-pinned: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.12", "3.13"] | |
| name: install (py${{ matrix.python-version }}) | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v10.0.1 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| run: uv python install ${{ matrix.python-version }} | |
| - name: Install all components | |
| run: uv sync --python ${{ matrix.python-version }} --all-extras | |
| - name: Verify provider entry points | |
| run: | | |
| uv run python -c " | |
| import importlib.metadata | |
| eps = importlib.metadata.entry_points(group='climate-ref.providers') | |
| names = {ep.name for ep in eps} | |
| print(f'Discovered providers: {names}') | |
| assert 'esmvaltool' in names, f'ESMValTool not found in {names}' | |
| assert 'pmp' in names, f'PMP not found in {names}' | |
| assert 'ilamb' in names, f'ILAMB not found in {names}' | |
| print('All AFT providers discovered successfully') | |
| " | |
| # Verify Helm chart is valid | |
| helm-lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Set up Helm | |
| uses: azure/setup-helm@v5.0.1 | |
| - name: Build chart dependencies | |
| run: helm dependency build helm/ | |
| - name: Lint chart | |
| run: helm lint helm/ | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v10.0.1 | |
| - name: Install dependencies | |
| run: uv sync --all-extras | |
| - name: Render tests | |
| run: uv run pytest tests/test_helm_render.py -v | |
| integration: | |
| if: github.repository == 'Climate-REF/climate-ref-aft' | |
| runs-on: arc-climate-ref | |
| needs: [install-pinned] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v10.0.1 | |
| - name: Install dependencies | |
| run: uv sync --all-extras | |
| - name: Set up providers | |
| run: uv run ref providers setup | |
| - name: Fetch test data | |
| run: | | |
| mkdir -p "$REF_TEST_DATA_DIR" | |
| uv run ref datasets fetch-sample-data | |
| env: | |
| REF_TEST_DATA_DIR: ${{ runner.temp }}/test-data | |
| - name: Run integration tests | |
| run: uv run pytest tests/ -v --slow | |
| env: | |
| REF_TEST_DATA_DIR: ${{ runner.temp }}/test-data |