File: tests.yml

package info (click to toggle)
python-confection 1.0.0~dev0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 260 kB
  • sloc: python: 2,588; sh: 13; makefile: 4
file content (92 lines) | stat: -rw-r--r-- 2,614 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
name: tests

on:
  push:
  pull_request:
    types: [opened, synchronize, reopened, edited]

jobs:
  validate:
    name: Validate
    if: github.repository_owner == 'explosion'
    runs-on: ubuntu-latest
    steps:
      - name: Check out repo
        uses: actions/checkout@v4

      - name: Configure Python version
        uses: actions/setup-python@v5
        with:
          python-version: "3.10"

      - name: black
        run: |
          python -m pip install black -c requirements.txt
          python -m black confection --check
      - name: isort
        run: |
          python -m pip install isort -c requirements.txt
          python -m isort confection --check
      - name: flake8
        run: |
          python -m pip install flake8 -c requirements.txt
          python -m flake8 confection --count --select=E901,E999,F821,F822,F823,W605 --show-source --statistics
  tests:
    name: Test
    needs: Validate
    if: github.repository == 'explosion/confection'
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        python_version: ["3.10", "3.12", "3.13"]

    runs-on: ${{ matrix.os }}

    steps:
      - name: Check out repo
        uses: actions/checkout@v4

      - name: Configure Python version
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python_version }}

      - name: Build sdist
        run: |
          python -m pip install -U build pip setuptools
          python -m pip install -U -r requirements.txt
          python -m build --sdist

      - name: Delete source directory
        run: rm -rf confection
        shell: bash

      - name: Uninstall all packages
        run: |
          python -m pip freeze > installed.txt
          python -m pip uninstall -y -r installed.txt

      - name: Install from sdist
        run: |
          SDIST=$(python -c "import os;print(os.listdir('./dist')[-1])" 2>&1)
          python -m pip install dist/$SDIST
        shell: bash

      - name: Test import
        run: python -c "import confection" -Werror

      - name: Install test requirements with Pydantic v2
        run: |
          python -m pip install -U -r requirements.txt
          python -m pip install -U pydantic

      - name: Run tests for Pydantic v2
        run: |
          python -c "import pydantic; print(pydantic.VERSION)"
          python -m pytest --pyargs confection -Werror

      - name: Test for import conflicts with hypothesis
        run: |
          python -m pip install hypothesis
          python -c "import confection; import hypothesis"