File: ci.yml

package info (click to toggle)
python-fontfeatures 1.9.0%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,104 kB
  • sloc: python: 9,112; makefile: 22
file content (82 lines) | stat: -rw-r--r-- 3,064 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
on:
    push:
        tags:
            - "v*" # Push events to matching `v*` version srings. e.g. v1.0, v20.15.10

name: Create and Publish Release

jobs:
    build:
        name: Build distribution
        runs-on: ubuntu-latest
        permissions:
            contents: write # needed to create a release
        steps:
            - uses: actions/checkout@v4
              with:
                  submodules: recursive
                  fetch-depth: 0
            - name: Set up Python
              uses: actions/setup-python@v5
              with:
                  python-version: "3.x"

            - name: Install release dependencies
              run: |
                  python -m pip install --upgrade pip
                  pip install --upgrade setuptools wheel build

            - name: Get release notes
              id: release_notes
              run: |
                  # By default, GH Actions checkout will only fetch a single commit.
                  # For us to extract the release notes, we need to fetch the tags
                  # and tag annotations as well.
                  # https://github.com/actions/checkout/issues/290
                  git fetch --tags --force
                  TAG_NAME=${GITHUB_REF/refs\/tags\//}
                  echo "$(git tag -l --format='%(contents)' $TAG_NAME)" > "${{ runner.temp }}/CHANGELOG.md"

            - name: Create GitHub release
              id: create_release
              uses: ncipollo/release-action@v1
              env:
                  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
              with:
                  tag: ${{ github.ref }}
                  name: ${{ github.ref }}
                  bodyFile: "${{ runner.temp }}/CHANGELOG.md"
                  draft: false
                  prerelease: false

            - name: Build a binary wheel and a source tarball
              run: python3 -m build
            - name: Store the distribution packages
              uses: actions/upload-artifact@v4
              with:
                  name: python-package-distributions
                  path: dist/

    publish-to-pypi:
        name: >-
            Publish Python 🐍 distribution 📦 to PyPI
        if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
        needs:
            - build
        runs-on: ubuntu-latest
        environment:
            name: pypi
            url: https://pypi.org/p/fontFeatures
        permissions:
            id-token: write # IMPORTANT: mandatory for trusted publishing
        steps:
            - name: Download all the dists
              uses: actions/download-artifact@v4
              with:
                  name: python-package-distributions
                  path: dist/
            - name: Publish distribution 📦 to PyPI
              uses: pypa/gh-action-pypi-publish@v1.12.4
              with:
                  # repository-url: https://test.pypi.org/legacy/ # for testing purposes
                  verify-metadata: false # twine previously didn't verify metadata when uploading