File: ci.yml

package info (click to toggle)
python-cogapp 3.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 388 kB
  • sloc: python: 3,449; makefile: 79
file content (140 lines) | stat: -rw-r--r-- 3,587 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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
name: "CI"

on:
  push:
  pull_request:

defaults:
  run:
    shell: bash

permissions:
  contents: read

concurrency:
  group: "${{ github.workflow }}-${{ github.ref }}"
  cancel-in-progress: true

jobs:

  format:
    name: "Check formatting"
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
        with:
          persist-credentials: false

      - uses: astral-sh/ruff-action@57714a7c8a2e59f32539362ba31877a1957dded1 # v3.5.1
        with:
          args: 'format --check'

  lint:
    name: "Lint"
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
        with:
          persist-credentials: false

      - uses: astral-sh/ruff-action@57714a7c8a2e59f32539362ba31877a1957dded1 # v3.5.1

      - name: "Set up Python"
        uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
        with:
          python-version: "3.13"

      - name: "Install dependencies"
        run: |
          python -m pip install -r requirements.pip

      - name: "Check the docs are up-to-date"
        run: |
          make lintdoc

  tests:
    name: "Python ${{ matrix.python }} on ${{ matrix.os }}"
    runs-on: "${{ matrix.os }}-${{ matrix.os-version || 'latest' }}"
    env:
      MATRIX_ID: "${{ matrix.python }}.${{ matrix.os }}"

    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu
          - macos
          - windows
        python:
          # When changing this list, be sure to check the [gh] list in
          # tox.ini so that tox will run properly.
          - "3.9"
          - "3.10"
          - "3.11"
          - "3.12"
          - "3.13"
          - "3.14"
        include:
          - python: "3.9"
            os: "macos"
            os-version: "13"

    steps:
      - name: "Check out the repo"
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
        with:
          persist-credentials: false

      - name: "Set up Python"
        uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
        with:
          python-version: "${{ matrix.python }}"
          allow-prereleases: true

      - name: "Install dependencies"
        run: |
          python -m pip install -r requirements.pip

      - name: "Run tox for ${{ matrix.python }}"
        run: |
          python -m tox
          python -m coverage debug data

      - name: "Upload coverage data"
        uses: actions/upload-artifact@v4
        with:
          name: covdata-${{ env.MATRIX_ID }}
          path: .coverage.*
          include-hidden-files: true

  combine:
    name: "Combine and report coverage"
    needs: tests
    runs-on: ubuntu-latest

    steps:
      - name: "Check out the repo"
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
        with:
          fetch-depth: "0"
          persist-credentials: false

      - name: "Set up Python"
        uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
        with:
          python-version: "3.9"

      - name: "Install dependencies"
        run: |
          python -m pip install -r requirements.pip

      - name: "Download coverage data"
        uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
        with:
          pattern: covdata-*
          merge-multiple: true

      - name: "Combine and report"
        run: |
          python -m coverage combine
          python -m coverage report -m