File: build.yml

package info (click to toggle)
python-pyzstd 0.19.1-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 496 kB
  • sloc: python: 5,754; makefile: 4
file content (130 lines) | stat: -rw-r--r-- 3,155 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
name: build

on:
  push:
    branches:
      - "master"
      - "ci-*"
    tags:
      - "**"
  pull_request:
  workflow_dispatch:

env:
  PY_COLORS: 1

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
        with:
          # fetch all commits for version computation
          fetch-depth: 0
      - name: Setup Python
        uses: actions/setup-python@v6
        with:
          python-version: "3.14"
      - name: Install dependencies
        run: python -m pip install -U build
      - name: Build
        run: python -m build
      - name: List distributions
        run: ls -lR dist
      - name: Save build artifacts
        uses: actions/upload-artifact@v5
        with:
          name: build
          path: dist
      - name: Install sdist
        run: python -m pip install dist/*.tar.gz
      - name: Test
        run: python -m unittest discover tests -v

  tests-py:
    name: Test | ${{ matrix.python }}
    runs-on: ubuntu-latest
    needs:
      - build
    strategy:
      matrix:
        python:
          - "3.10"
          - "3.11"
          - "3.12"
          - "3.13"
          - "3.14"
          - "pypy-3.10"
          - "pypy-3.11"
    steps:
      - uses: actions/checkout@v6
      - name: Restore build artifacts
        uses: actions/download-artifact@v6
        with:
          name: build
          path: dist
      - name: Setup Python ${{ matrix.python }}
        uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.python }}
      - name: Install wheel
        run: python -m pip install dist/*.whl
      - name: Test
        run: python -m unittest discover tests -v

  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Setup Python
        uses: actions/setup-python@v6
        with:
          python-version: 3.14
      - name: Install dependencies
        run: python -m pip install -r requirements-lint.txt
      - name: ruff check
        run: ruff check
      - name: ruff format
        run: ruff format --check

  type:
    name: Type
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Setup Python
        uses: actions/setup-python@v6
        with:
          python-version: 3.14
      - name: Install dependencies
        run: python -m pip install -r requirements-type.txt
      - name: Create _version.py
        run: echo '__version__ = ""' > src/pyzstd/_version.py
      - name: mypy
        run: mypy

  publish:
    name: Publish to PyPI
    if: startsWith(github.ref, 'refs/tags')
    needs:
      - build
      - tests-py
    runs-on: ubuntu-latest
    environment: publish
    permissions:
      id-token: write # This permission is mandatory for trusted publishing
    steps:
      - name: Restore build artifacts
        uses: actions/download-artifact@v6
        with:
          name: build
          path: dist
      - name: List distributions
        run: ls -lR dist
      - name: Publish to PyPI
        uses: pypa/gh-action-pypi-publish@release/v1
        with:
          verbose: true
          print-hash: true