name: Python build one single wheel on: workflow_call: inputs: python-version: required: true type: string os: required: true type: string arch: required: true type: string jobs: build: #name: py${{ inputs.python-version }}-${{ inputs.os }}-${{ inputs.arch }} runs-on: ${{ inputs.os }} steps: - uses: actions/checkout@v4.2.2 with: submodules: recursive - name: Set up Python uses: actions/setup-python@v5 with: python-version: 3.13.x - name: Install Python dependencies run: | python -m pip install --upgrade pip python -m pip install requests packaging - name: Figure out the TestPyPi/PyPi Version shell: bash run: | if [[ "$GITHUB_REF" == *"refs/tags"* ]]; then python dev/extract_version.py --pypi --replace-setup-py else python dev/extract_version.py --replace-setup-py fi; - name: Set up QEMU if: ${{ runner.os == 'Linux' }} uses: docker/setup-qemu-action@v3.2.0 with: platforms: all - name: Build and test wheels uses: pypa/cibuildwheel@v2.23.2 env: MACOSX_DEPLOYMENT_TARGET: 11.0 CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=11.0 SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk CIBW_BEFORE_BUILD: > pip install setuptools wheel Cython requests jinja2 pyyaml CIBW_BEFORE_BUILD_LINUX: > pip install setuptools wheel Cython requests jinja2 pyyaml && git config --global --add safe.directory "*" CIBW_ENVIRONMENT_LINUX: COOLPROP_CMAKE=default,NATIVE CIBW_BUILD: cp${{ inputs.python-version }}-* CIBW_ARCHS_MACOS: ${{ inputs.arch }} # x86_64 arm64 # universal2 is redundant CIBW_ARCHS_WINDOWS: ${{ inputs.arch }} # AMD64 x86 # ARM64 creates problems with msgpack-c CIBW_ARCHS_LINUX: ${{ inputs.arch }} # i686 x86_64 aarch64 ppc64le s390x CIBW_TEST_COMMAND: python -c "import CoolProp; assert '?' not in CoolProp.__gitrevision__" CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 CIBW_MANYLINUX_I686_IMAGE: manylinux2014 CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014 CIBW_SKIP: "pp*" CIBW_TEST_SKIP: "*-macosx_arm64 *-win_arm64" with: package-dir: ./wrappers/Python/ output-dir: Python - name: Upload Files uses: actions/upload-artifact@v4 with: name: Python-${{ inputs.os }}-${{ inputs.python-version }}-${{ inputs.arch }} path: | ./Python/*.whl