Skip to content

Fix

Fix #925

Workflow file for this run

name: Dev CI
on:
push:
branches:
# on all branches except main where full build will be run
- '*'
- '!main'
jobs:
manylinux_build:
name: Build linux ${{ matrix.python.name }} wheel
runs-on: ubuntu-latest
container: quay.io/pypa/manylinux2014_x86_64:2022-11-01-e47a7a6
strategy:
matrix:
python:
- {
name: cp38,
abi: cp38,
version: '3.8',
}
steps:
- name: Install Linux packages
run: yum install -y rh-maven33-maven zlib-devel.x86_64
- name: Setup GraalVM
uses: graalvm/setup-graalvm@v1
with:
java-version: '17'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout sources
uses: actions/checkout@v3
with:
submodules: true
- name: Checkout olf sources
uses: actions/checkout@v3
with:
repository: powsybl/powsybl-open-loadflow
ref: integration-v1.2.4
path: powsybl-open-loadflow
- name: Build and install olf
shell: bash
run: scl enable rh-maven33 'mvn --batch-mode -DskipTests=true --file powsybl-open-loadflow/pom.xml install'
- name: Setup path
run: echo "/opt/python/${{ matrix.python.name }}-${{ matrix.python.abi }}/bin/" >> $GITHUB_PATH
- name: Install dependencies
run: pip3 install -r requirements.txt
- name: Build wheel
run: |
scl enable rh-maven33 'python3 setup.py bdist_wheel'
auditwheel repair dist/*.whl
- name: Install wheel
run: pip3 install wheelhouse/*.whl --user
- name: Run tests
working-directory: ./tests # Run in subdir to use installed lib, not sources
run: |
pytest
- name: Type checking
run: mypy -p pypowsybl
- name: Dev install # In order to generate coverage and linting, we need to install in sources
run: |
pip3 uninstall -y pypowsybl
python3 setup.py develop
- name: Generate coverage
run: |
coverage run -m pytest tests/
coverage xml
- name: Linting
run: pylint pypowsybl
- name: Run doc examples
working-directory: ./docs
run: make doctest
- name: Upload wheel
uses: actions/upload-artifact@v3
with:
name: pypowsybl-wheel-linux-${{ matrix.python.name }}
path: wheelhouse/*.whl
macos_windows_build:
name: Build ${{ matrix.config.name }} ${{ matrix.python.name }} wheel
runs-on: ${{ matrix.config.os }}
strategy:
matrix:
config:
- {
name: darwin,
os: macos-11,
}
- {
name: windows,
os: windows-2022,
}
python:
- {
name: cp38,
version: '3.8',
}
steps:
- name: Setup GraalVM
uses: graalvm/setup-graalvm@v1
with:
java-version: '17'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout sources
uses: actions/checkout@v3
with:
submodules: true
- name: Checkout olf sources
uses: actions/checkout@v3
with:
repository: powsybl/powsybl-open-loadflow
ref: integration-v1.2.4
path: powsybl-open-loadflow
- name: Build and install olf
shell: bash
run: mvn --batch-mode -DskipTests=true --file powsybl-open-loadflow/pom.xml install
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python.version }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
- name: Build wheel
env:
MACOSX_DEPLOYMENT_TARGET: "10.16" # to ensure pip finds wheel when Big Sur is configured to return 10.16 as version instead of 11.0
run: python setup.py bdist_wheel
- name: Install wheel
shell: bash
run: python -m pip install dist/*.whl --user
- name: Run tests
working-directory: ./tests
run: python3 -m pytest
- name: Type checking
run: mypy -p pypowsybl
- name: Run doc examples
working-directory: ./docs
run: make doctest
- name: Upload wheel
uses: actions/upload-artifact@v3
with:
name: pypowsybl-wheel-${{ matrix.config.name }}-${{ matrix.python.name }}
path: dist/*.whl