File: ci-cd.yml

package info (click to toggle)
python-didl-lite 1.4.1-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 192 kB
  • sloc: python: 1,384; makefile: 6; sh: 5
file content (131 lines) | stat: -rw-r--r-- 3,734 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
name: Build

on:
  - push
  - pull_request

env:
  publish-python-version: 3.12

jobs:
  markdown_lint:
    name: Markdown Lint
    runs-on: ubuntu-latest
    steps:
      - uses: DavidAnson/markdownlint-cli2-action@v16
        with:
          globs: "**/*.md"

  lint_test_build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
    steps:
      - uses: actions/checkout@v4
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
          allow-prereleases: true
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          python -m pip install --upgrade build
          python -m pip install --upgrade tox tox-gh-actions
      - name: Test with tox
        run: tox
      - name: Build package
        run: python -m build
      - name: Upload build artifacts
        uses: actions/upload-artifact@v4
        with:
          name: python-package-distributions-${{ matrix.python-version }}
          path: dist/
      - name: Upload coverage reports to Codecov
        uses: codecov/codecov-action@v3
        if: ${{ hashFiles('coverage-py312.xml') != '' }}
        with:
          files: coverage-py312.xml
        env:
          CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

  publish-to-pypi:
    name: Publish to PyPI
    runs-on: ubuntu-latest
    if: startsWith(github.ref, 'refs/tags/')
    needs:
      - markdown_lint
      - lint_test_build
    environment:
      name: pypi
      url: https://pypi.org/p/python-didl-lite
    permissions:
      id-token: write
    steps:
      - name: Download all the dists
        uses: actions/download-artifact@v4
        with:
          name: python-package-distributions-${{ env.publish-python-version }}
          path: dist/
      - name: Publish to PyPI
        uses: pypa/gh-action-pypi-publish@release/v1

  github-release:
    needs:
      - publish-to-pypi
    runs-on: ubuntu-latest
    permissions:
      contents: write
      id-token: write
    steps:
      - name: Download all the dists
        uses: actions/download-artifact@v4
        with:
          name: python-package-distributions-${{ env.publish-python-version }}
          path: dist/
      - name: Sign the dists with Sigstore
        uses: sigstore/gh-action-sigstore-python@v2.1.1
        with:
          inputs: >-
            ./dist/*.tar.gz
            ./dist/*.whl
      - name: Create GitHub Release
        env:
          GITHUB_TOKEN: ${{ github.token }}
        run: >-
          gh release create
          '${{ github.ref_name }}'
          --repo '${{ github.repository }}'
          --notes ""
      - name: Upload artifact signatures to GitHub Release
        env:
          GITHUB_TOKEN: ${{ github.token }}
        run: >-
          gh release upload
          '${{ github.ref_name }}' dist/**
          --repo '${{ github.repository }}'

  publish-to-testpypi:
    name: Publish to TestPyPI
    runs-on: ubuntu-latest
    if: github.repository == 'StevenLooman/python-didl-lite'
    needs:
      - markdown_lint
      - lint_test_build
    environment:
      name: testpypi
      url: https://test.pypi.org/p/python-didl-lite
    permissions:
      id-token: write
    steps:
      - name: Download all the dists
        uses: actions/download-artifact@v4
        with:
          name: python-package-distributions-${{ env.publish-python-version }}
          path: dist/
      - name: Publish to TestPyPI
        uses: pypa/gh-action-pypi-publish@release/v1
        with:
          repository-url: https://test.pypi.org/legacy/
        continue-on-error: true