Skip to content

Trying to fix macos-arm64 job. #118

Trying to fix macos-arm64 job.

Trying to fix macos-arm64 job. #118

Workflow file for this run

name: Assets
on:
release:
types:
- created
push:
branches:
- 'release**'
# Note: 'actions/upload-release-asset@v1' often fails with 'read ECONNRESET'
# According to https://github.com/actions/upload-release-asset, it is no longer maintained
# To increase the chances of obtaining all assets - potentially after manually retrying - we set
# 'jobs.<job_id>.strategy.fail-fast: false' until a proper solution is implemented
jobs:
# macos-x64:
# name: PyPI wheels for macOS (x64)
# runs-on: macos-latest
# strategy:
# fail-fast: false
# matrix:
# python:
# - "3.8"
# - "3.9"
# - "3.10"
# - "3.11"
# - "3.12"
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# - uses: actions/setup-python@v4
# with:
# python-version: ${{ matrix.python }}
# - name: Install dependencies
# run: |
# brew install bison flex swig xquartz
# echo "/usr/local/opt/bison/bin" >> $GITHUB_PATH
# echo "/usr/local/opt/flex/bin" >> $GITHUB_PATH
# python -m pip install --upgrade pip conan setuptools wheel
# - name: Build wheel
# run: python setup.py bdist_wheel
# - name: Wheel path
# id: wheel
# working-directory: pybuild/dist/
# run: |
# echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_OUTPUT
# echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_ENV
# - uses: actions/upload-artifact@v3
# with:
# name: pypi-macos-py${{ matrix.python }}
# path: pybuild/dist/${{ env.WHEEL_NAME }}
# - uses: actions/upload-release-asset@v1
# if: ${{ github.event_name == 'release' && github.event.action == 'created' }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ github.event.release.upload_url }}
# asset_path: pybuild/dist/${{ env.WHEEL_NAME }}
# asset_name: ${{ env.WHEEL_NAME }}
# asset_content_type: application/zip
macos-arm64:
name: PyPI wheels for macOS (arm64)
runs-on: [self-hosted, ARM64, macOS]
strategy:
fail-fast: false
matrix:
python:
- "3.10"
- "3.11"
- "3.12"
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
brew install bison flex java swig xquartz
echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
echo "$(brew --prefix flex)/bin" >> $GITHUB_PATH
echo "$(brew --prefix java)/bin" >> $GITHUB_PATH
python -m pip install --upgrade pip conan setuptools wheel
- name: Get latest CMake
uses: lukka/get-cmake@latest
- name: Build wheel
run: python setup.py bdist_wheel
- name: Wheel path
id: wheel
working-directory: pybuild/dist/
run: |
echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_OUTPUT
echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_ENV
- uses: actions/upload-artifact@v3
with:
name: pypi-macos-py${{ matrix.python }}
path: pybuild/dist/${{ env.WHEEL_NAME }}
- uses: actions/upload-release-asset@v1
if: ${{ github.event_name == 'release' && github.event.action == 'created' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: pybuild/dist/${{ env.WHEEL_NAME }}
asset_name: ${{ env.WHEEL_NAME }}
asset_content_type: application/zip
# manylinux-x64:
# name: PyPI wheels for Manylinux (x64)
# runs-on: ubuntu-latest
# container: quay.io/pypa/manylinux${{ matrix.manylinux }}_x86_64:latest
# env:
# SWIG_VERSION: ${{ matrix.swig_version }}
# strategy:
# fail-fast: false
# matrix:
# manylinux:
# - "_2_28"
# cpython_version:
# - "cp38-cp38"
# - "cp39-cp39"
# - "cp310-cp310"
# - "cp311-cp311"
# - "cp312-cp312"
# include:
# - manylinux: _2_28
# swig_version: 'swig-3.0.12-19.module_el8.3.0+6167+838326ab'
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# - name: Install dependencies
# run: |
# dnf install -y $SWIG_VERSION
# export PATH="/opt/python/${{ matrix.cpython_version }}/bin:$PATH"
# python -m pip install --upgrade conan wheel auditwheel
# - name: Build wheel
# run: |
# export PATH="/opt/python/${{ matrix.cpython_version }}/bin:$PATH"
# conan remove -c "*/*"
# python setup.py bdist_wheel
# python -m auditwheel repair pybuild/dist/*.whl
# - name: Wheel path
# id: wheel
# working-directory: wheelhouse
# run: |
# echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_OUTPUT
# echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_ENV
# - uses: actions/upload-artifact@v3
# with:
# name: pypi-linux-${{ matrix.cpython_version }}
# path: wheelhouse/${{ env.WHEEL_NAME }}
# - uses: actions/upload-release-asset@v1
# if: ${{ github.event_name == 'release' && github.event.action == 'created' }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ github.event.release.upload_url }}
# asset_path: wheelhouse/${{ env.WHEEL_NAME }}
# asset_name: ${{ env.WHEEL_NAME }}
# asset_content_type: application/zip
#
# manylinux-arm64:
# name: PyPI wheels for Manylinux (arm64)
# runs-on: [self-hosted, ARM64, Linux]
# container: quay.io/pypa/manylinux${{ matrix.manylinux }}_aarch64:latest
# env:
# BISON_VERSION: ${{ matrix.bison_version }}
# FLEX_VERSION: ${{ matrix.flex_version }}
# JAVA_VERSION: ${{ matrix.java_version }}
# SWIG_VERSION: ${{ matrix.swig_version }}
# strategy:
# matrix:
# manylinux:
# - "_2_28"
# cpython_version:
# - "cp38-cp38"
# - "cp39-cp39"
# - "cp310-cp310"
# - "cp311-cp311"
# - "cp312-cp312"
# # We are having problems when using the m4 and zulu-opendjk Conan packages on an armv8 architecture
# # m4 is required by flex/bison and zulu-openjdk provides the Java JRE required by the ANTLR generator
# # So, for the time being, we are installing flex/bison and java manually for this platform
# include:
# - manylinux: _2_28
# bison_version: 'bison-3.0.4-10.el8'
# flex_version: 'flex-2.6.1-9.el8'
# java_version: 'java-11-openjdk-11.0.21.0.9-2.el8'
# swig_version: 'swig-3.0.12-19.module_el8.4.0+2254+838326ab'
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# - name: Install dependencies
# run: |
# dnf install -y $BISON_VERSION $FLEX_VERSION $JAVA_VERSION $SWIG_VERSION
# export PATH="/opt/python/${{ matrix.cpython_version }}/bin:$PATH"
# python -m pip install --upgrade pip conan wheel auditwheel
# - name: Build wheel
# run: |
# export PATH="/opt/python/${{ matrix.cpython_version }}/bin:$PATH"
# conan remove -c "*/*"
# python setup.py bdist_wheel
# python -m auditwheel repair pybuild/dist/*.whl
# - name: Wheel path
# id: wheel
# working-directory: wheelhouse
# run: |
# echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_OUTPUT
# echo "WHEEL_NAME=$(ls *.whl)" >> $GITHUB_ENV
# - uses: actions/upload-artifact@v3
# with:
# name: pypi-linux-${{ matrix.cpython_version }}
# path: wheelhouse/${{ env.WHEEL_NAME }}
# - uses: actions/upload-release-asset@v1
# if: ${{ github.event_name == 'release' && github.event.action == 'created' }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ github.event.release.upload_url }}
# asset_path: wheelhouse/${{ env.WHEEL_NAME }}
# asset_name: ${{ env.WHEEL_NAME }}
# asset_content_type: application/zip
#
# windows-x64:
# name: PyPI wheels for Windows
# runs-on: windows-latest
# strategy:
# fail-fast: false
# matrix:
# python:
# - "3.8"
# - "3.9"
# - "3.10"
# - "3.11"
# - "3.12"
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# - uses: actions/setup-python@v4
# with:
# python-version: ${{ matrix.python }}
# - name: Install dependencies
# run: python -m pip install --upgrade pip conan setuptools wheel
# - name: Build wheel
# run: python setup.py bdist_wheel
# - name: Wheel path
# id: wheel
# working-directory: pybuild/dist/
# run: |
# echo "WHEEL_NAME=$(Get-ChildItem -name *.whl)" >> $env:GITHUB_OUTPUT
# echo "WHEEL_NAME=$(Get-ChildItem -name *.whl)" >> $env:GITHUB_ENV
# shell: powershell
# - uses: actions/upload-artifact@v3
# with:
# name: pypi-windows-py${{ matrix.python }}
# path: pybuild/dist/${{ env.WHEEL_NAME }}
# - uses: actions/upload-release-asset@v1
# if: ${{ github.event_name == 'release' && github.event.action == 'created' }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ github.event.release.upload_url }}
# asset_path: pybuild/dist/${{ env.WHEEL_NAME }}
# asset_name: ${{ env.WHEEL_NAME }}
# asset_content_type: application/zip
#
# publish:
# name: Publish
# if: ${{ github.event_name == 'release' && github.event.action == 'created' }}
# needs:
# - macos-x64
# - macos-arm64
# - manylinux-x64
# - manylinux-arm64
# - windows-x64
# runs-on: ubuntu-latest
# steps:
# - name: Download artifacts
# uses: actions/download-artifact@v3
# id: download
# - name: Publish to PyPI
# uses: pypa/[email protected]
# with:
# user: __token__
# password: ${{ secrets.PYPI_TOKEN }}
# packages_dir: ${{ steps.download.outputs.download-path }}/pypi-*