File: deploy.yml

package info (click to toggle)
ujson 5.11.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,148 kB
  • sloc: ansic: 2,789; python: 1,510; cpp: 50; makefile: 43; sh: 12
file content (132 lines) | stat: -rw-r--r-- 3,552 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
---
name: Deploy

on:
  push:
    branches:
      - main
  pull_request:
    paths:
      - ".github/workflows/deploy.yml"
  release:
    types:
      - published
  workflow_dispatch:

permissions: {}

env:
  FORCE_COLOR: 1

jobs:
  build-wheels:
    name: "${{ matrix.os }}: ${{ matrix.cibw_arch }}"
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - os: windows-latest
            cibw_arch: "auto"
          - os: windows-11-arm
            cibw_arch: "ARM64"
          - os: macos-latest
            cibw_arch: "x86_64 arm64"
          - os: ubuntu-latest
            cibw_arch: "x86_64 i686"
          - os: ubuntu-24.04-arm
            cibw_arch: aarch64
    steps:
      - uses: actions/checkout@v5
      - run: git fetch --prune --unshallow

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.x"

      # https://github.com/pypa/cibuildwheel
      - name: Build wheels
        uses: pypa/cibuildwheel@v3.1.4
        with:
          output-dir: dist
        # Options are supplied via environment variables:
        env:
          # Build wheels for the currently selected architecture.
          CIBW_ARCHS: ${{ matrix.cibw_arch }}
          # Include latest Python beta.
          CIBW_ENABLE: cpython-prerelease pypy
          # Skip EOL Python versions.
          CIBW_SKIP: "pp310*"
          # Run the test suite after each build.
          CIBW_TEST_REQUIRES: "pytest"
          CIBW_TEST_COMMAND: pytest {package}/tests

      - name: Upload as build artifacts
        uses: actions/upload-artifact@v4
        with:
          name: wheels-${{ matrix.os }}
          path: dist/*.whl

  build-sdist-and-upload:
    runs-on: ubuntu-latest
    needs: ['build-wheels']
    permissions:
      # IMPORTANT: this permission is mandatory for trusted publishing
      id-token: write

    steps:
      - uses: actions/checkout@v5
      - run: |
            git fetch --prune --unshallow

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.x"

      - name: Install dependencies
        run: |
          python -m pip install -U pip
          python -m pip install -U build twine

      - name: Download wheels from build artifacts
        uses: actions/download-artifact@v5
        with:
          pattern: wheels-*
          merge-multiple: true
          path: dist-wheels/

      - name: Build package
        run: |
          git tag
          python -m build --sdist
          twine check --strict dist/*
          twine check --strict dist-wheels/*

      - name: Publish wheels to PyPI
        if: github.event.action == 'published'
        uses: pypa/gh-action-pypi-publish@release/v1
        with:
          packages-dir: dist-wheels/

      - name: Publish sdist to PyPI
        if: github.event.action == 'published'
        uses: pypa/gh-action-pypi-publish@release/v1

      - name: Publish wheels to TestPyPI
        if: |
          github.repository == 'ultrajson/ultrajson' &&
          github.ref == 'refs/heads/main'
        uses: pypa/gh-action-pypi-publish@release/v1
        with:
          repository-url: https://test.pypi.org/legacy/
          packages-dir: dist-wheels/

      - name: Publish sdist to TestPyPI
        if: |
          github.repository == 'ultrajson/ultrajson' &&
          github.ref == 'refs/heads/main'
        uses: pypa/gh-action-pypi-publish@release/v1
        with:
          repository-url: https://test.pypi.org/legacy/