"required" JSON keys are validated against "additionalProperties" if … #881
This file contains 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: Pull Request Gate | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
workflow_dispatch: | |
jobs: | |
# First Stage ======================================================================= | |
# Linting and basic CPU-based tests | |
linting-black: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# https://black.readthedocs.io/en/stable/integrations/github_actions.html | |
- uses: psf/black@stable | |
with: | |
options: "--diff" # Remove this to start enforcement | |
linting-mypy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.9 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install .[all,test] | |
- name: Run mypy | |
run: | | |
python -m mypy guidance | |
bare-install: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-12] | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Minimal install | |
run: | | |
pip install -e . | |
- name: Attempt import | |
run: | | |
python -c "import guidance" | |
basic-tests-linux-python-latest: | |
uses: ./.github/workflows/action_plain_basic_tests.yml | |
strategy: | |
fail-fast: false # Don't cancel all on first failure | |
matrix: | |
model: | |
- "transformers_gpt2_cpu" | |
- "transformers_phi2_cpu" | |
# - "transformers_mistral_7b_cpu" See Issue 713 | |
- "llamacpp_llama2_7b_cpu" | |
- "llamacpp_mistral_7b_cpu" | |
- "transformers_phi3_mini_4k_instruct_cpu" | |
- "llamacpp_phi3_mini_4k_instruct_cpu" | |
with: | |
os: Large_Linux | |
python-version: "3.12" | |
model: ${{ matrix.model }} | |
end-stage-1: | |
needs: | |
- linting-black | |
- linting-mypy | |
- bare-install | |
- basic-tests-linux-python-latest | |
name: End Stage 1 | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "End of Stage 1" | |
# Second stage ======================================================================= | |
# Remaining CPU-based tests on Linux, plus server tests and basic GPU testing | |
basic-tests-gpu-python-latest: | |
needs: end-stage-1 | |
uses: ./.github/workflows/action_gpu_basic_tests.yml | |
with: | |
os: gpu-runner | |
python-version: "3.12" | |
basic-tests-linux-python-other: | |
needs: end-stage-1 | |
strategy: | |
fail-fast: false # Don't cancel all on first failure | |
matrix: | |
python-version: ["3.9", "3.10", "3.11"] | |
model: | |
- "transformers_gpt2_cpu" | |
- "transformers_phi2_cpu" | |
# - "transformers_mistral_7b_cpu" See Issue 713 | |
- "llamacpp_llama2_7b_cpu" | |
- "llamacpp_mistral_7b_cpu" | |
- "transformers_phi3_mini_4k_instruct_cpu" | |
- "llamacpp_phi3_mini_4k_instruct_cpu" | |
uses: ./.github/workflows/action_plain_basic_tests.yml | |
with: | |
os: Large_Linux | |
python-version: ${{ matrix.python-version }} | |
model: ${{ matrix.model }} | |
server-tests: | |
needs: end-stage-1 | |
strategy: | |
fail-fast: false # Don't cancel all on first failure | |
matrix: | |
# Need to figure out what happened to 3.12 | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
uses: ./.github/workflows/action_server_tests.yml | |
with: | |
os: ubuntu-latest | |
python-version: ${{ matrix.python-version }} | |
end-stage-2: | |
needs: | |
- basic-tests-linux-python-other | |
- basic-tests-gpu-python-latest | |
- server-tests | |
name: End Stage 2 | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "End of Stage 1" | |
# Third Stage ============================================================== | |
# Windows and MacOS, plus other GPU Linux tests | |
basic-tests-mac-x86: | |
needs: end-stage-2 | |
strategy: | |
fail-fast: false # Don't cancel all on first failure | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
model: | |
- "transformers_gpt2_cpu" | |
- "transformers_phi2_cpu" | |
# - "transformers_mistral_7b_cpu" See Issue 713 | |
- "llamacpp_llama2_7b_cpu" | |
- "llamacpp_mistral_7b_cpu" | |
# - "transformers_phi3_mini_4k_instruct_cpu" Gives trouble on MacOS | |
- "llamacpp_phi3_mini_4k_instruct_cpu" | |
uses: ./.github/workflows/action_plain_basic_tests.yml | |
with: | |
os: macos-12 | |
python-version: ${{ matrix.python-version }} | |
model: ${{ matrix.model }} | |
basic-tests-mac-arm: | |
needs: end-stage-2 | |
strategy: | |
fail-fast: false # Don't cancel all on first failure | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
model: | |
# - "transformers_gpt2_cpu" See #965 | |
# - "transformers_phi2_cpu" Seems to get stuck | |
# - "transformers_mistral_7b_cpu" See Issue 713 | |
# - "llamacpp_llama2_7b_cpu" Getting stuck with llama-cpp-python 0.2.77 | |
# - "llamacpp_mistral_7b_cpu" | |
# - "transformers_phi3_mini_4k_instruct_cpu" Gives trouble on MacOS | |
- "llamacpp_phi3_mini_4k_instruct_cpu" | |
uses: ./.github/workflows/action_plain_basic_tests.yml | |
with: | |
os: macos-latest | |
python-version: ${{ matrix.python-version }} | |
model: ${{ matrix.model }} | |
basic-tests-win: | |
needs: end-stage-2 | |
strategy: | |
fail-fast: false # Don't cancel all on first failure | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
model: | |
- "transformers_gpt2_cpu" | |
- "transformers_phi2_cpu" | |
# - "transformers_mistral_7b_cpu" See Issue 713 | |
- "llamacpp_llama2_7b_cpu" | |
- "llamacpp_mistral_7b_cpu" | |
- "transformers_phi3_mini_4k_instruct_cpu" | |
- "llamacpp_phi3_mini_4k_instruct_cpu" | |
uses: ./.github/workflows/action_plain_basic_tests.yml | |
with: | |
os: Large_Windows | |
python-version: ${{ matrix.python-version }} | |
model: ${{ matrix.model }} | |
basic-tests-gpu-python-others: | |
needs: end-stage-2 | |
strategy: | |
fail-fast: false # Don't cancel all on first failure | |
matrix: | |
python-version: ["3.9", "3.10", "3.11"] | |
uses: ./.github/workflows/action_gpu_basic_tests.yml | |
with: | |
os: gpu-runner | |
python-version: ${{ matrix.python-version }} | |