Skip to content

include ERA5 atmosphere data for density splines #13

include ERA5 atmosphere data for density splines

include ERA5 atmosphere data for density splines #13

Workflow file for this run

name: Build_with_cibuildwheel_and_upload_to_PyPI
on:
workflow_dispatch:
push:
branches:
- master
paths:
- 'MCEq/**'
- '!MCEq/data/README.md'
tags:
- 'release**'
pull_request:
types:
- opened
paths:
- 'MCEq/**'
- '!MCEq/data/README.md'
jobs:
make_sdist:
name: Make SDist
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build SDist
run: pipx run build --sdist
- uses: actions/upload-artifact@v3
with:
path: dist/*.tar.gz
build_wheels:
name: Wheel for ${{ matrix.py }} ${{ matrix.os }} ${{ matrix.arch }}
runs-on: ${{ matrix.os }}
if: ${{ !(github.event_name == 'pull_request')}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
arch: [native, aarch64, universal2]
py: [cp36, cp37, cp38, cp39, cp310]
exclude:
- os: windows-latest
arch: aarch64
- os: windows-latest
arch: universal2
- os: macos-latest
arch: aarch64
- os: macos-latest
arch: universal2
py: cp36
- os: macos-latest
arch: universal2
py: cp37
- os: ubuntu-latest
arch: universal2
env:
PYTEST_COMMAND: pytest --pyargs MCEq
PYTEST_COMMAND_AARCH64: >
cd {package}/MCEq/tests &&
pytest test_densities.py test_msis.py
steps:
- uses: actions/checkout@v3
- name: Set up QEMU
if: ${{ matrix.arch == 'aarch64' }}
uses: docker/setup-qemu-action@v1
- name: Set up testing command for aarch64
if: ${{ (matrix.arch == 'aarch64') && !(matrix.py == 'cp36') }}
run: |
echo "CIBW_TEST_COMMAND=${{ env.PYTEST_COMMAND_AARCH64 }}" >> $GITHUB_ENV
shell: bash
- name: Set up testing command for other cases
if: ${{ !(matrix.arch == 'aarch64') }}
run: |
echo "CIBW_TEST_COMMAND=${{ env.PYTEST_COMMAND }}" >> $GITHUB_ENV
shell: bash
- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD: ${{ matrix.py }}-*
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_SKIP: "*musllinux*"
CIBW_TEST_SKIP: "*-macosx_universal2:arm64"
CIBW_TEST_REQUIRES: pytest
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
path: wheelhouse/*.whl
build_wheels_on_pr:
name: Wheel for ${{ matrix.py }} ${{ matrix.os }} ${{ matrix.arch }}
runs-on: ${{ matrix.os }}
if: ${{ github.event_name == 'pull_request' }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
arch: [native]
py: [cp39]
steps:
- uses: actions/checkout@v3
- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD: ${{ matrix.py }}-*
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_SKIP: "*musllinux*"
CIBW_TEST_REQUIRES: pytest
CIBW_TEST_COMMAND: pytest --pyargs MCEq
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
path: wheelhouse/*.whl
upload_all_to_PyPI:
name: Upload to PyPI
needs: [build_wheels, make_sdist]
runs-on: ubuntu-latest
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
steps:
- name: Download files in artifact to "dist/" directory
uses: actions/download-artifact@v3
with:
name: artifact
path: dist
- name: Publish the package to PyPI
uses: pypa/[email protected]
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}