Gel sqla #1742
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: Tests | |
on: | |
push: | |
branches: | |
- master | |
- ci | |
pull_request: | |
branches: | |
- master | |
workflow_dispatch: | |
inputs: {} | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
env: | |
PIP_DISABLE_PIP_VERSION_CHECK: 1 | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] | |
edgedb-version: [5, nightly] | |
os: [ubuntu-latest, macos-latest, windows-2019] | |
loop: [asyncio, uvloop] | |
exclude: | |
# uvloop does not support windows | |
- loop: uvloop | |
os: windows-2019 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 50 | |
submodules: true | |
- name: Check if release PR. | |
uses: edgedb/action-release/validate-pr@master | |
id: release | |
with: | |
github_token: ${{ secrets.RELEASE_BOT_GITHUB_TOKEN }} | |
missing_version_ok: yes | |
version_file: gel/_version.py | |
version_line_pattern: | | |
__version__\s*=\s*(?:['"])([[:PEP440:]])(?:['"]) | |
# If this is a release PR, skip tests. They will be run | |
# as part of the release process, and running them here | |
# might interfere with the release automation due to | |
# branch restrictions. | |
- name: Setup WSL | |
if: ${{ steps.release.outputs.version == 0 && matrix.os == 'windows-2019' }} | |
uses: vampire/setup-wsl@v1 | |
with: | |
wsl-shell-user: edgedb | |
additional-packages: | |
ca-certificates | |
curl | |
- name: Install EdgeDB | |
uses: edgedb/setup-edgedb@v1 | |
if: steps.release.outputs.version == 0 | |
with: | |
server-version: ${{ matrix.edgedb-version }} | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
if: steps.release.outputs.version == 0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Python Deps | |
if: steps.release.outputs.version == 0 | |
run: | | |
python -m pip install --upgrade setuptools pip wheel | |
python -m pip install -e .[test] | |
- name: Test | |
if: steps.release.outputs.version == 0 | |
env: | |
LOOP_IMPL: ${{ matrix.loop }} | |
SERVER_VERSION: ${{ matrix.edgedb-version }} | |
run: | | |
if [ "${SERVER_VERSION}" = "nightly" ]; then | |
export EDGEDB_TEST_CODEGEN_ASSERT_SUFFIX=.assert | |
else | |
export EDGEDB_TEST_CODEGEN_ASSERT_SUFFIX=.assert${SERVER_VERSION} | |
fi | |
if [ "${LOOP_IMPL}" = "uvloop" ]; then | |
env USE_UVLOOP=1 python -m unittest -v tests.suite | |
else | |
python -m unittest -v tests.suite | |
fi | |
# This job exists solely to act as the test job aggregate to be | |
# targeted by branch policies. | |
regression-tests: | |
name: "Regression Tests" | |
needs: [test] | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo OK |