File: ci.yml

package info (click to toggle)
python-pyspnego 0.10.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,688 kB
  • sloc: python: 16,197; sh: 182; makefile: 11
file content (158 lines) | stat: -rw-r--r-- 3,473 bytes parent folder | download | duplicates (3)
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
name: Test pyspnego
on:
  push:
    branches:
    - main
    paths-ignore:
    - CHANGELOG.md
    - LICENSE
    - README.md

  pull_request:
    branches:
    - main
    paths-ignore:
    - CHANGELOG.md
    - LICENSE
    - README.md

  release:
    types:
    - published

  schedule:
  - cron: 0 9 * * *

jobs:
  build:
    name: build sdist and universal wheel
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3

    - name: build sdist and universal wheel
      run: |
        python -m pip install build
        python -m build

    - uses: actions/upload-artifact@v3
      with:
        name: artifact
        path: ./dist/*

  test:
    name: test
    needs:
    - build

    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os:
        - ubuntu-latest
        - macOS-12
        - windows-latest
        python-version:
        - 3.8
        - 3.9
        - '3.10'
        - '3.11'
        - '3.12'
        python-arch:
        - x86
        - x64
        gssapi-provider:
        - mit
        - heimdal
        - sspi

        exclude:
        - os: ubuntu-latest
          python-arch: x86
        - os: ubuntu-latest
          gssapi-provider: sspi

        - os: macOS-12
          python-arch: x86
        - os: macOS-12
          gssapi-provider: mit
        - os: macOS-12
          gssapi-provider: sspi

        - os: windows-latest
          gssapi-provider: mit
        - os: windows-latest
          gssapi-provider: heimdal

    steps:
    - uses: actions/checkout@v3

    - uses: actions/setup-python@v4
      with:
        python-version: ${{ matrix.python-version }}
        architecture: ${{ matrix.python-arch }}

    - uses: actions/download-artifact@v3
      with:
        name: artifact
        path: ./dist

    - name: Extract OS name
      shell: bash
      run: |
        echo NAME=$( echo '${{ matrix.os }}' | tr '-' ' ' | awk '{print $1}' )
        echo "name=${NAME}" >> $GITHUB_OUTPUT
      id: os

    - name: Test
      shell: bash
      run: |
        if [ "$(expr substr $(uname -s) 1 5)" == "MINGW" ]; then
            build_helpers/run-ci.sh
        else
            sudo -E build_helpers/run-ci.sh
        fi
      env:
        GSSAPI_PROVIDER: ${{ matrix.gssapi-provider }}
        PYTEST_ADDOPTS: --color=yes

    - name: Upload Test Results
      if: always()
      uses: actions/upload-artifact@v3
      with:
        name: Unit Test Results (${{ matrix.os }} ${{ matrix.python-version }} ${{ matrix.python-arch }})
        path: ./junit/test-results.xml

    - name: Upload Coverage Results
      if: always()
      uses: actions/upload-artifact@v3
      with:
        name: Coverage Results (${{ matrix.os }} ${{ matrix.python-version }} ${{ matrix.python-arch }})
        path: ./coverage.xml

    - name: Upload Coverage to codecov
      if: always()
      uses: codecov/codecov-action@v3
      with:
        files: ./coverage.xml
        flags: ${{ steps.os.outputs.name }},py${{ matrix.python-version }},${{ matrix.python-arch }}

  publish:
    name: publish
    needs:
    - test
    runs-on: ubuntu-latest
    permissions:
      # IMPORTANT: this permission is mandatory for trusted publishing
      id-token: write

    steps:
    - uses: actions/download-artifact@v3
      with:
        name: artifact
        path: ./dist

    - name: Publish package to PyPI
      if: startsWith(github.ref, 'refs/tags/v')
      uses: pypa/gh-action-pypi-publish@release/v1