File: pytest.yml

package info (click to toggle)
grass 8.4.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 277,040 kB
  • sloc: ansic: 460,798; python: 227,732; cpp: 42,026; sh: 11,262; makefile: 7,007; xml: 3,637; sql: 968; lex: 520; javascript: 484; yacc: 450; asm: 387; perl: 157; sed: 25; objc: 6; ruby: 4
file content (92 lines) | stat: -rw-r--r-- 2,829 bytes parent folder | download | duplicates (2)
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: pytest

on:
  push:
    branches:
      - main
      - releasebranch_*
  pull_request:

jobs:
  pytest:
    concurrency:
      group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}-${{
        matrix.os }}-${{ matrix.python-version }}
      cancel-in-progress: true

    strategy:
      matrix:
        os:
          - ubuntu-22.04
        python-version:
          - '3.8'
          - '3.10'
          - '3.12'
      fail-fast: true

    runs-on: ${{ matrix.os }}
    env:
      FORCE_COLOR: 1 # for software including pip: https://force-color.org/
      CLICOLOR_FORCE: 1 # for other software including ninja: https://bixense.com/clicolors/

    steps:
      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

      - name: Set up Python
        uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
        with:
          python-version: ${{ matrix.python-version }}
          cache: pip

      - name: Install non-Python dependencies
        run: |
          sudo apt-get update -y
          sudo apt-get install -y wget git gawk findutils
          xargs -a <(awk '! /^ *(#|$)/' ".github/workflows/apt.txt") -r -- \
              sudo apt-get install -y --no-install-recommends --no-install-suggests

      - uses: rui314/setup-mold@8de9eea54963d01c1a6c200606257d65bd53bea1 # v1

      - name: Install Python dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r .github/workflows/python_requirements.txt
          pip install -r .github/workflows/optional_requirements.txt
          pip install pytest pytest-timeout pytest-github-actions-annotate-failures pytest-xdist

      - name: Create installation directory
        run: |
          mkdir $HOME/install

      - name: Set number of cores for compilation
        run: |
          echo "MAKEFLAGS=-j$(nproc)" >> $GITHUB_ENV

      - name: Build
        run: .github/workflows/build_${{ matrix.os }}.sh $HOME/install

      - name: Add the bin directory to PATH
        run: |
          echo "$HOME/install/bin" >> $GITHUB_PATH

      - name: Test executing of the grass command
        run: .github/workflows/test_simple.sh

      - name: Run pytest
        run: |
          export PYTHONPATH=`grass --config python_path`:$PYTHONPATH
          export LD_LIBRARY_PATH=$HOME/install/grass84/lib:$LD_LIBRARY_PATH
          pytest --verbose --color=yes --durations=0 --durations-min=0.5 --numprocesses auto -ra .

      - name: Print installed versions
        if: always()
        run: .github/workflows/print_versions.sh
  pytest-success:
    name: pytest Result
    needs:
      - pytest
    if: ${{ always() }}
    uses: ./.github/workflows/verify-success.yml
    with:
      needs_context: ${{ toJson(needs) }}