File: python-wheels-publish-test.yml

package info (click to toggle)
openexr 3.4.6%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 41,948 kB
  • sloc: cpp: 166,793; ansic: 26,769; python: 2,990; sh: 581; makefile: 9
file content (131 lines) | stat: -rw-r--r-- 3,857 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
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
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) Contributors to the OpenEXR Project.

name: Publish python distribution 📦 to TestPyPI

on:

  # Publish python wheels to test.pypi when a release candidate is tagged, 
  # e.g. v3.4.5-rc, v3.4.5-rc6, etc.

  push:
    tags:
      - v3.[0-9]+.[0-9]+-rc*
  workflow_dispatch:

permissions:
  contents: read

jobs:
  build:
    name: Python Wheels - ${{ matrix.os }}-${{ matrix.arch }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        include:
          - os: ubuntu-latest
            arch: x64
          - os: ubuntu-24.04-arm
            arch: arm64
          - os: macos-15-intel
            arch: x64
          - os: macos-latest
            arch: arm64
          - os: windows-latest
            arch: x64

    environment:
      name: testpypi
      url: https://test.pypi.org/p/openexr

    permissions:
      id-token: write
      
    steps:
      - name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

      - name: Install Python 
        uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
        with:
          python-version: '3.x'

      - name: Create sdist
        # Only create it once.
        if: ${{ matrix.os == 'ubuntu-latest' }}
        env:
          OPENEXR_RELEASE_CANDIDATE_TAG: ${{ github.ref_name }}
        run: pipx run build --sdist . --outdir wheelhouse

      - name: Build wheel
        uses: pypa/cibuildwheel@v3.3
        with:
          output-dir: wheelhouse
        env:
          MACOSX_DEPLOYMENT_TARGET: 10.15
          CIBW_ARCHS_MACOS: x86_64 arm64 universal2
          # Build Python 3.8 through 3.13.
          # Skip 32-bit wheels builds on Windows
          # Also skip the PyPy builds, since they fail the unit tests
          CIBW_BUILD: "cp38-* cp39-* cp310-* cp311-* cp312-* cp313-*"
          CIBW_SKIP: "*-win32 *_i686"
          CIBW_TEST_SKIP: "*-macosx_universal2:arm64"
          CIBW_ENVIRONMENT: OPENEXR_RELEASE_CANDIDATE_TAG="${{ github.ref_name }}"

      - name: Upload artifact
        uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
        with:
          name: wheels-${{ matrix.os }}-${{ matrix.arch }}
          path: |
            ./wheelhouse/*.whl
            ./wheelhouse/*.tar.gz
  
  publish-to-testpypi:
    name: Publish Python 🐍 distribution 📦 to TestPyPI
    needs:
    - build
    runs-on: ubuntu-latest

    environment:
      name: testpypi
      url: https://test.pypi.org/p/openexr

    permissions:
      id-token: write

    steps:

    - name: Download ubuntu-latest-x64 artifacts
      uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
      with:
        name: wheels-ubuntu-latest-x64
        path: dist

    - name: Download ubuntu-24.04-arm-arm64 artifacts
      uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
      with:
        name: wheels-ubuntu-24.04-arm-arm64
        path: dist

    - name: Download macos-15-intel-x64 artifacts
      uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
      with:
        name: wheels-macos-15-intel-x64
        path: dist

    - name: Download macos-latest-arm64
      uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
      with:
        name: wheels-macos-latest-arm64
        path: dist

    - name: Download windows-latest-x64 artifacts
      uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
      with:
        name: wheels-windows-latest-x64
        path: dist

    - name: Publish distribution 📦 to TestPyPI
      uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
      with:
        repository-url: https://test.pypi.org/legacy/