polymers 0.3.7

Polymers Modeling Library
Documentation
name: Python
on:
  pull_request:
    branches: [ "main" ]
  release:
    types: [ published ]
jobs:
  linux-wheels:
    runs-on: ubuntu-latest
    container: quay.io/pypa/manylinux2014_x86_64:2023-04-30-c9c30dc
    steps:
     - uses: actions/checkout@v3
     - uses: actions-rs/toolchain@v1
       with:
         toolchain: 1.65.0
         default: true
     - name: build wheels
       run: bash .github/workflows/build-wheels.sh
     - uses: actions/upload-artifact@v3
       with:
         name: linux-wheels
         path: wheelhouse/
  osx-wheels:
    runs-on: macos-latest
    strategy:
      fail-fast: false
      matrix:
        python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
    steps:
     - uses: actions/checkout@v3
     - uses: actions-rs/toolchain@v1
       with:
         toolchain: 1.65.0
         default: true
     - uses: actions/setup-python@v4
       with:
         python-version: ${{ matrix.python-version }}
     - name: build wheels
       run: |
         python3 -m pip install cffi maturin
         maturin build --features python --release
     - uses: actions/upload-artifact@v3
       with:
         name: osx-${{ matrix.python-version }}-wheel
         path: target/wheels
  windows-wheels:
    runs-on: windows-latest
    steps:
     - uses: actions/checkout@v3
     - uses: actions-rs/toolchain@v1
       with:
         toolchain: 1.65.0
         default: true
     - uses: actions/setup-python@v4
     - name: build wheels
       run: |
         python -m pip install cffi maturin
         maturin build --features python --release
     - uses: actions/upload-artifact@v3
       with:
         name: windows-wheels
         path: target/wheels
  twine:
    if: github.event_name == 'release'
    needs: [linux-wheels, osx-wheels, windows-wheels]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/download-artifact@v3
      - name: check
        run: |
          mkdir wheelhouse/
          mv ./*-wheel*/*.whl wheelhouse/ || true
          pip install twine
          twine check wheelhouse/*.whl
      - name: upload
        run: twine upload -u __token__ -p ${{ secrets.PYPI_TOKEN }} wheelhouse/*.whl
  test:
    if: github.event_name != 'release'
    strategy:
      fail-fast: false
      matrix:
        os: [macos-latest, windows-latest, ubuntu-latest]
        python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
    runs-on: ${{ matrix.os }}
    steps:
      - name: checkout
        uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with:
          python-version: ${{ matrix.python-version }}
      - name: maturin
        run: |
          pip install maturin
          maturin build --features python --release --out .
          pip install --find-links=. polymers
      - name: pytest
        run: |
          pip install pytest
          pytest --verbose .
      - name: pycodestyle
        run: |
          pip install pycodestyle
          pycodestyle --verbose .
      - name: pylint
        run: |
          pip install pylint
          pylint --verbose src