Calendars: cache the domain scan + show a clear "searching everyone" … #42
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: | |
| jobs: | |
| test: | |
| name: test (${{ matrix.os }}, py${{ matrix.python }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| python: ["3.9", "3.12"] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: Install (flexible deps from pyproject) | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e ".[dev]" | |
| - name: Run tests | |
| # Uses the mock gam binary; needs no vendored GAM7 and no credentials. | |
| run: pytest -q | |
| gam-compat: | |
| name: gam-compat (pinned binary) | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e ".[dev]" | |
| - name: Vendor the pinned GAM7 binary + command reference | |
| run: ./scripts/fetch_gam.sh | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # authenticate api.github.com -> avoid the 60/hr 403 | |
| - name: Assert the vendored version matches the pin | |
| run: | | |
| python - <<'PY' | |
| import pathlib | |
| from gamgui.core.gam.commands import EXPECTED_GAM_VERSION | |
| v = pathlib.Path("gamgui/resources/gam7/VERSION").read_text() | |
| assert EXPECTED_GAM_VERSION in v, f"vendored VERSION {v!r} != pin {EXPECTED_GAM_VERSION}" | |
| print("vendored:", v.split(chr(10))[0]) | |
| PY | |
| - name: Command-contract test against the REAL reference | |
| run: pytest -q tests/test_command_contract.py | |
| gam-latest-preview: | |
| # Non-blocking early warning: would the NEWEST GAM rename/remove a command we use? Does not change the pin. | |
| name: gam-compat (latest, non-blocking) | |
| runs-on: macos-latest | |
| continue-on-error: true | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e ".[dev]" | |
| - name: Vendor the LATEST GAM7 (preview only) | |
| run: ./scripts/fetch_gam.sh --tag latest | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # authenticate api.github.com -> avoid the 60/hr 403 | |
| - name: Command-token contract against latest (early warning) | |
| run: pytest -q tests/test_command_contract.py -k tokens |