fix: bind allowlisted extensions to discovered sources #623
Workflow file for this run
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: Reference consumers | |
| on: | |
| push: | |
| pull_request: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| typer-matrix: | |
| name: Typer ${{ matrix.typer-version }} / Python ${{ matrix.python-version }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| typer-version: ["0.25.1", "0.26.0", "0.27.1", "0.27.2"] | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Set up Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install framework and exact Typer line | |
| run: | | |
| python -m pip install "setuptools<77" "wheel" | |
| python -m pip install ".[dev]" | |
| python -m pip install --upgrade "typer==${{ matrix.typer-version }}" | |
| - name: Install Beacon fixture without dependency resolution | |
| run: python -m pip install --no-deps compatibility/consumers/beacon_typer | |
| - name: Run adapter and Beacon compatibility tests | |
| run: python -m pytest tests/test_typer_adapter.py compatibility/consumers/beacon_typer/tests | |
| typer-click-boundaries: | |
| name: Typer ${{ matrix.typer-version }} / Click ${{ matrix.click-version }} / Python ${{ matrix.python-version }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.14"] | |
| typer-version: ["0.25.1", "0.27.2"] | |
| click-version: ["8.2.1", "8.5.0"] | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Set up Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install framework and supported Typer adapter | |
| run: | | |
| python -m pip install "setuptools<77" "wheel" | |
| python -m pip install ".[dev,typer]" | |
| - name: Pin the tested Click/Typer boundary pair | |
| run: python -m pip install --upgrade "click==${{ matrix.click-version }}" "typer==${{ matrix.typer-version }}" | |
| - name: Install Beacon fixture without dependency resolution | |
| run: python -m pip install --no-deps compatibility/consumers/beacon_typer | |
| - name: Run adapter and Beacon compatibility tests | |
| run: python -m pytest tests/test_typer_adapter.py compatibility/consumers/beacon_typer/tests | |
| downstream: | |
| name: Install and test independent consumers | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Set up Python | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: "3.13" | |
| - name: Install framework build and test dependencies | |
| run: python -m pip install ".[dev,typer,rich,telemetry]" | |
| - name: Build and install the framework wheel | |
| run: | | |
| python -m build --wheel | |
| python -m pip uninstall --yes base-cli | |
| python -m pip install dist/*.whl | |
| - name: Validate consumer manifest | |
| run: python scripts/validate_consumers.py | |
| - name: Install consumers independently | |
| run: | | |
| python -m pip install compatibility/consumers/atlas_click | |
| python -m pip install compatibility/consumers/beacon_typer | |
| python -m pip install "compatibility/consumers/cinder_automation[observability]" | |
| - name: Run downstream compatibility suites | |
| run: | | |
| for tests in compatibility/consumers/*/tests; do | |
| python -m pytest "$tests" | |
| done | |
| - name: Record dated compatibility evidence | |
| run: python scripts/record_compatibility_evidence.py > compatibility-evidence.json | |
| - name: Upload compatibility evidence | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: base-cli-compatibility-evidence-${{ github.run_id }} | |
| path: compatibility-evidence.json | |
| if-no-files-found: error | |
| retention-days: 90 |