Skip to content

Convert to pyproject.toml #76

Convert to pyproject.toml

Convert to pyproject.toml #76

Workflow file for this run

name: Build FMPy
on:
push:
branches: [ main ]
tags: [ 'v*' ]
pull_request:
branches: [ main ]
jobs:
build-binaries:
strategy:
matrix:
include:
- name: windows
image: windows-2022
- name: linux
image: ubuntu-20.04
- name: darwin
image: macos-13
runs-on: ${{ matrix.image }}
steps:
- uses: actions/checkout@v4
with:
submodules: 'true'
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- run: python -m pip install fmpy requests toml
- run: |
cd native
python build_cvode.py
- run: |
cd native
python build_binaries.py
- if: matrix.name == 'linux' || matrix.name == 'windows'
run: |
cd native
python build_remoting.py
- if: matrix.name == 'darwin'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}
path: |
src/fmpy/fmucontainer/binaries/darwin64/FMUContainer.dylib
src/fmpy/logging/darwin64/logging.dylib
src/fmpy/sundials/x86_64-darwin/sundials_cvode.dylib
src/fmpy/sundials/x86_64-darwin/sundials_nvecserial.dylib
src/fmpy/sundials/x86_64-darwin/sundials_sunlinsoldense.dylib
src/fmpy/sundials/x86_64-darwin/sundials_sunmatrixdense.dylib
if-no-files-found: error
- if: matrix.name == 'linux'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}
path: |
src/fmpy/fmucontainer/binaries/linux64/FMUContainer.so
src/fmpy/remoting/linux64/client_tcp.so
src/fmpy/remoting/linux64/server_tcp
src/fmpy/logging/linux64/logging.so
src/fmpy/sundials/x86_64-linux/sundials_cvode.so
src/fmpy/sundials/x86_64-linux/sundials_nvecserial.so
src/fmpy/sundials/x86_64-linux/sundials_sunlinsoldense.so
src/fmpy/sundials/x86_64-linux/sundials_sunmatrixdense.so
if-no-files-found: error
- if: matrix.name == 'windows'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}
path: |
src/fmpy/fmucontainer/binaries/win32/FMUContainer.dll
src/fmpy/fmucontainer/binaries/win64/FMUContainer.dll
src/fmpy/remoting/win32/client_sm.dll
src/fmpy/remoting/win32/client_tcp.dll
src/fmpy/remoting/win32/server_tcp.exe
src/fmpy/remoting/win32/server_sm.exe
src/fmpy/remoting/win64/client_sm.dll
src/fmpy/remoting/win64/client_tcp.dll
src/fmpy/remoting/win64/server_tcp.exe
src/fmpy/remoting/win64/server_sm.exe
src/fmpy/logging/win32/logging.dll
src/fmpy/logging/win64/logging.dll
src/fmpy/sundials/x86_64-windows/sundials_cvode.dll
src/fmpy/sundials/x86_64-windows/sundials_nvecserial.dll
src/fmpy/sundials/x86_64-windows/sundials_sunlinsoldense.dll
src/fmpy/sundials/x86_64-windows/sundials_sunmatrixdense.dll
if-no-files-found: error
# merge-wheels:
# runs-on: ubuntu-22.04
# needs: [ build-wheels ]
# steps:
# - uses: actions/checkout@v4
# - uses: actions/download-artifact@v4
# with:
# name: linux
# path: wheels/linux
# - uses: actions/download-artifact@v4
# with:
# name: darwin
# path: wheels/darwin
# - uses: actions/download-artifact@v4
# with:
# name: windows
# path: wheels/windows
# - uses: actions/setup-python@v5
# with:
# python-version: '3.10'
# - run: python merge_wheels.py
# - uses: actions/upload-artifact@v4
# with:
# name: merged
# path: wheels/merged
# if-no-files-found: error
# run-tests:
# strategy:
# matrix:
# include:
# - name: windows
# image: windows-2022
# - name: linux
# image: ubuntu-22.04
# - name: darwin
# image: macos-13
# runs-on: ${{ matrix.image }}
# needs: [ merge-wheels ]
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: 'true'
# - uses: JesseTG/rm@b0586afffd89db69f7309bd44cc90209173fdbbe
# with:
# path: fmpy
# - uses: actions/download-artifact@v4
# with:
# name: merged
# path: .
# - run: ls
# - uses: actions/setup-python@v5
# with:
# python-version: '3.10'
# - if: matrix.name == 'linux' || matrix.name == 'darwin'
# run: |
# for f in FMPy-*.whl; do
# python -m pip install $f[complete]
# done
# - if: matrix.name == 'windows'
# run: |
# $files = Get-ChildItem "FMPy-*.whl"
# foreach ($f in $files) {
# $name = $f.FullName + "[complete]"
# python -m pip install $name
# }
# - run: python -m pip install pytest
# - run: pytest tests