# Run unitary test name: test on: workflow_call: jobs: source-code-checks: runs-on: ubuntu-24.04 timeout-minutes: 5 permissions: contents: read steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - name: Check formatting with Ruff # uses: chartboost/ruff-action@e18ae971ccee1b2d7bbef113930f00c670b78da4 # v1 # with: # args: 'format --check' - name: Check linting with Ruff uses: chartboost/ruff-action@e18ae971ccee1b2d7bbef113930f00c670b78da4 # v1 with: args: 'check' # - name: Static type check # run: | # echo "Skipping static type check for the moment, too much error..."; # # pip install pyright # # pyright glances test-linux: needs: source-code-checks # https://github.com/actions/runner-images?tab=readme-ov-file#available-images runs-on: ubuntu-24.04 timeout-minutes: 15 strategy: matrix: # Python EOL version are note tested # Multiple Python version only tested for Linux python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] permissions: contents: read steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: python-version: ${{ matrix.python-version }} cache: 'pip' - name: Install dependencies run: | if [ -f dev-requirements.txt ]; then python -m pip install -r dev-requirements.txt; fi if [ -f requirements.txt ]; then python -m pip install -r requirements.txt; fi - name: Unitary tests run: | python -m pytest ./tests/test_core.py test-windows: needs: source-code-checks # https://github.com/actions/runner-images?tab=readme-ov-file#available-images runs-on: windows-2025 timeout-minutes: 15 strategy: matrix: python-version: ["3.14"] permissions: contents: read steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: python-version: ${{ matrix.python-version }} cache: 'pip' - name: Install dependencies run: | if (Test-Path -PathType Leaf "dev-requirements.txt") { python -m pip install -r dev-requirements.txt } if (Test-Path -PathType Leaf "requirements.txt") { python -m pip install -r requirements.txt } pip install pytest pip install . - name: Unitary tests run: | python -m pytest ./tests/test_core.py test-macos: needs: source-code-checks # https://github.com/actions/runner-images?tab=readme-ov-file#available-images runs-on: macos-15 timeout-minutes: 15 strategy: matrix: # Only test the latest stable version python-version: ["3.14"] permissions: contents: read steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: python-version: ${{ matrix.python-version }} cache: 'pip' - name: Install dependencies run: | if [ -f dev-requirements.txt ]; then python -m pip install -r dev-requirements.txt; fi if [ -f requirements.txt ]; then python -m pip install -r requirements.txt; fi - name: Unitary tests run: | python -m pytest ./tests/test_core.py # test-freebsd: # needs: source-code-checks # runs-on: ubuntu-latest # strategy: # matrix: # # Only test the latest stable version # python-version: ["3.14"] # steps: # - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - name: Set up Python ${{ matrix.python-version }} # uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 # with: # python-version: ${{ matrix.python-version }} # cache: 'pip' # - name: Install dependencies # uses: vmactions/freebsd-vm@v1 # with: # usesh: true # run: | # pkg install -y python3 gcc devel/py-pip # python3 --version # if [ -f dev-requirements.txt ]; then python3 -m pip install -r dev-requirements.txt; fi # if [ -f requirements.txt ]; then python3 -m pip install -r requirements.txt; fi # - name: Unitary tests # uses: vmactions/freebsd-vm@v1 # with: # usesh: true # run: | # python3 -m pytest ./tests/test_core.py