1e31aef6aSopenharmony_ciname: Tests
2e31aef6aSopenharmony_cion:
3e31aef6aSopenharmony_ci  push:
4e31aef6aSopenharmony_ci    branches:
5e31aef6aSopenharmony_ci      - main
6e31aef6aSopenharmony_ci      - '*.x'
7e31aef6aSopenharmony_ci    paths-ignore:
8e31aef6aSopenharmony_ci      - 'docs/**'
9e31aef6aSopenharmony_ci      - '*.md'
10e31aef6aSopenharmony_ci      - '*.rst'
11e31aef6aSopenharmony_ci  pull_request:
12e31aef6aSopenharmony_ci    branches:
13e31aef6aSopenharmony_ci      - main
14e31aef6aSopenharmony_ci      - '*.x'
15e31aef6aSopenharmony_ci    paths-ignore:
16e31aef6aSopenharmony_ci      - 'docs/**'
17e31aef6aSopenharmony_ci      - '*.md'
18e31aef6aSopenharmony_ci      - '*.rst'
19e31aef6aSopenharmony_cijobs:
20e31aef6aSopenharmony_ci  tests:
21e31aef6aSopenharmony_ci    name: ${{ matrix.name }}
22e31aef6aSopenharmony_ci    runs-on: ${{ matrix.os }}
23e31aef6aSopenharmony_ci    strategy:
24e31aef6aSopenharmony_ci      fail-fast: false
25e31aef6aSopenharmony_ci      matrix:
26e31aef6aSopenharmony_ci        include:
27e31aef6aSopenharmony_ci          - {name: Linux, python: '3.11', os: ubuntu-latest, tox: py311}
28e31aef6aSopenharmony_ci          - {name: Windows, python: '3.11', os: windows-latest, tox: py311}
29e31aef6aSopenharmony_ci          - {name: Mac, python: '3.11', os: macos-latest, tox: py311}
30e31aef6aSopenharmony_ci          - {name: '3.12-dev', python: '3.12-dev', os: ubuntu-latest, tox: py312}
31e31aef6aSopenharmony_ci          - {name: '3.10', python: '3.10', os: ubuntu-latest, tox: py310}
32e31aef6aSopenharmony_ci          - {name: '3.9', python: '3.9', os: ubuntu-latest, tox: py39}
33e31aef6aSopenharmony_ci          - {name: '3.8', python: '3.8', os: ubuntu-latest, tox: py38}
34e31aef6aSopenharmony_ci          - {name: '3.7', python: '3.7', os: ubuntu-latest, tox: py37}
35e31aef6aSopenharmony_ci          - {name: 'PyPy', python: 'pypy-3.10', os: ubuntu-latest, tox: pypy310}
36e31aef6aSopenharmony_ci          - {name: Typing, python: '3.11', os: ubuntu-latest, tox: typing}
37e31aef6aSopenharmony_ci    steps:
38e31aef6aSopenharmony_ci      - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
39e31aef6aSopenharmony_ci      - uses: actions/setup-python@5ccb29d8773c3f3f653e1705f474dfaa8a06a912
40e31aef6aSopenharmony_ci        with:
41e31aef6aSopenharmony_ci          python-version: ${{ matrix.python }}
42e31aef6aSopenharmony_ci          cache: 'pip'
43e31aef6aSopenharmony_ci          cache-dependency-path: 'requirements/*.txt'
44e31aef6aSopenharmony_ci      - name: update pip
45e31aef6aSopenharmony_ci        run: |
46e31aef6aSopenharmony_ci          pip install -U wheel
47e31aef6aSopenharmony_ci          pip install -U setuptools
48e31aef6aSopenharmony_ci          python -m pip install -U pip
49e31aef6aSopenharmony_ci      - name: cache mypy
50e31aef6aSopenharmony_ci        uses: actions/cache@58c146cc91c5b9e778e71775dfe9bf1442ad9a12
51e31aef6aSopenharmony_ci        with:
52e31aef6aSopenharmony_ci          path: ./.mypy_cache
53e31aef6aSopenharmony_ci          key: mypy|${{ matrix.python }}|${{ hashFiles('setup.cfg') }}
54e31aef6aSopenharmony_ci        if: matrix.tox == 'typing'
55e31aef6aSopenharmony_ci      - run: pip install tox
56e31aef6aSopenharmony_ci      - run: tox run -e ${{ matrix.tox }}
57