Skip to content

Updated project name in pyproject.toml #10

Updated project name in pyproject.toml

Updated project name in pyproject.toml #10

Workflow file for this run

name: Python package
on: [push]
permissions:
contents: write
jobs:
build_wheel:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-14, windows-latest]
build_type: [Release]
c_compiler: [clang]
python-version: ['3.11']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- name: Install cibuildwheel
run: python -m pip install cibuildwheel==2.21.3
- name: Install Twine
run: python -m pip install twine # Install Twine for uploading the package
- name: MacOS dependencies
if: ${{ runner.os == 'macOS' }}
run: |
brew uninstall pkg-config || echo "pkg-config not installed, skipping uninstallation."
brew uninstall pkg-config@0.29.2 || echo "pkg-config@0.29.2 not available, skipping uninstallation."
brew install gsl
brew install hdf5
- name: Windows dependencies
if: ${{ runner.os == 'Windows' }}
uses: mamba-org/setup-micromamba@v1
with:
environment-name: moose
cache-environment: true
cache-downloads: true
create-args: >-
python=${{ matrix.python-version }}
pkg-config
clang
hdf5
pybind11[global]
graphviz
pytables
numpy
matplotlib
vpython
lxml
doxygen
setuptools
wheel
meson
ninja
meson-python
gsl
cibuildwheel
post-cleanup: all
generate-run-shell: false
- name: Linux package
if: runner.os == 'Linux'
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BEFORE_ALL: 'uname -a'
CIBW_BEFORE_ALL_LINUX: >
yum install -y epel-release &&
yum install -y pkgconfig &&
yum install -y gsl-devel &&
yum install -y hdf5-devel
CIBW_BUILD: '*-manylinux_x86_64'
CIBW_SKIP: 'pp*'
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
CIBW_MANYLINUX_PYPY_X86_64_IMAGE: manylinux_2_28
run: |
python -m cibuildwheel --output-dir wheelhouse
ls wheelhouse
- name: MacOS package
if: runner.os == 'macOS'
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_BEFORE_ALL: 'uname -a'
CIBW_BEFORE_ALL_MACOS: >
brew uninstall pkg-config || :
brew uninstall pkg-config@0.29.2 || :
brew install gsl hdf5 meson ninja cmake &&
export PKG_CONFIG=`which pkg-config` &&
echo "<<<<<<<<<##########################################>>>>>>>>>>" &&
echo "$$$$$ `pkg-config --libs gsl`" &&
echo "@@@@@ `pkg-config --cflags gsl`"
CIBW_ARCHS: 'arm64'
CIBW_BUILD: '*-macosx_arm64'
CIBW_SKIP: 'pp* cp38*'
run: |
export "MACOSX_DEPLOYMENT_TARGET=$(echo ${{ matrix.os }} | cut -c 7-8).0" # required because gsl2.8 has minimum target of 14.0
python -m cibuildwheel --output-dir wheelhouse
ls wheelhouse
- name: Windows package
if: runner.os == 'Windows'
env:
CIBW_BEFORE_ALL: 'uname -a'
CIBW_BUILD: '*-win_*'
CIBW_SKIP: '*-win32 pp*'
run: |
micromamba shell hook -s powershell | Out-String | Invoke-Expression
micromamba activate moose
python -m cibuildwheel --output-dir wheelhouse
dir wheelhouse
- name: Upload to PyPI
env:
TWINE_USERNAME: __token__ # Use __token__ as the username
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} # Use the secret with your PyPI token as the password
run: |
python -m pip install --upgrade twine # Ensure Twine is installed again
which twine # Debug: Check if Twine is correctly installed
twine upload wheelhouse/*.whl # Upload the built wheels to PyPI