Added tmate session for debugging #522
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: cMaBoSS Linux | |
on: | |
push: | |
pull_request: | |
release: | |
types: [created] | |
jobs: | |
cmaboss: | |
name: cMaBoSS | |
runs-on: ubuntu-22.04 | |
env: | |
CC: gcc | |
CXX: g++ | |
INSTALL_PATH: /usr/ | |
BUILD_PATH: /tmp/ | |
LIBXML_LIBDIR: /usr/lib/x86_64-linux-gnu/libxml2.so | |
LIBXML_INCLUDEDIR: /usr/include/libxml2 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -yq python3-pip python3-setuptools | |
sudo pip3 install numpy pandas | |
- name: Cache compiled libSBML | |
id: cache-libsbml-gcc | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/libsbml-5.20.4 | |
key: ${{ runner.os }}-libSBML-5.20.4-gcc-namespace | |
- name: Compiling libSBML | |
if: steps.cache-libsbml-gcc.outputs.cache-hit != 'true' | |
run: bash scripts/build_libsbml.sh | |
- name: Install libSBML | |
run: sudo bash scripts/install_libsbml.sh | |
- name: Build cMaBoSS | |
run: | | |
cd engine/src | |
make grammars | |
cd ../python | |
cp -r ../src cmaboss | |
pip3 install . -vvv | |
cd ../.. | |
- name: Test cMaBoSS | |
run: bash scripts/run_cmaboss_tests.sh | |
build_wheels_linux: | |
name: Build linux wheels | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
build: ["cp*-manylinux_x86_64"] | |
needs: cmaboss | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Install cibuildwheel | |
run: python -m pip install cibuildwheel numpy twine | |
- name: Build wheels | |
env: | |
CIBW_BUILD: ${{ matrix.build }} | |
CIBW_BEFORE_ALL: > | |
yum install wget libxml2-devel -y && | |
CC=gcc CXX=g++ INSTALL_PATH=/usr/ BUILD_PATH=/tmp/ \ | |
LIBXML_LIBDIR=/usr/lib64/libxml2.so \ | |
LIBXML_INCLUDEDIR=/usr/include/libxml2 bash scripts/build_libsbml.sh && | |
BUILD_PATH=/tmp/ bash scripts/install_libsbml.sh | |
run: | | |
cd engine/src | |
make grammars | |
cd ../../ | |
cp -r engine/src engine/python/cmaboss/ | |
python -m cibuildwheel --output-dir wheelhouse engine/python | |
- uses: actions/upload-artifact@v4 | |
if: matrix.build == 'cp*-manylinux_x86_64' | |
with: | |
name: wheels-cpython | |
path: wheelhouse/*.whl | |
- uses: actions/upload-artifact@v4 | |
if: matrix.build == 'pp*-manylinux_x86_64' | |
with: | |
name: wheels-pypy | |
path: wheelhouse/*.whl | |
- name: Upload cMaBoSS to test Pypi | |
if: github.repository == 'vincent-noel/MaBoSS' && github.ref == 'refs/heads/master' | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.PYPI_TEST_TOKEN }} | |
run: | | |
python -m twine upload --repository testpypi --skip-existing wheelhouse/cmaboss* | |
- name: Upload cMaBoSS to Pypi | |
if: github.repository == 'sysbio-curie/MaBoSS' && github.event_name == 'release' | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} | |
run: | | |
python -m twine upload --skip-existing wheelhouse/cmaboss* | |
cmaboss_conda_defaults: | |
name: Build cMaBoSS Anaconda package | |
runs-on: ubuntu-22.04 | |
needs: cmaboss | |
strategy: | |
fail-fast: false | |
matrix: | |
version: [{python: "3.8", numpy: "1.24"}, {python: "3.9", numpy: "2.0"}, {python: "3.10", numpy: "2.0"}, {python: "3.11", numpy: "2.0"}, {python: "3.12", numpy: "2.0"}] | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
channels: defaults | |
python-version: 3.12 | |
use-mamba: true | |
- name: Install conda-build | |
run: | | |
conda install conda-build anaconda-client conda-verify | |
- name: Build cMaBoSS Anaconda package | |
run: | | |
CUSTOM_BUILD_NUMBER=0 conda build -c colomoto --variants "{\"python\": [\"${{ matrix.version.python }}\"], \"numpy\": [\"${{ matrix.version.numpy }}\"]}" conda/cmaboss; | |
- name: Upload cMaBoSS Ananconda package on vincent-noel | |
run: | | |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u vincent-noel /usr/share/miniconda/envs/test/conda-bld/linux-64/*.tar.bz2 --force; | |
- name: Upload cMaBoSS Ananconda package on colomoto | |
if: github.repository == 'sysbio-curie/MaBoSS' && github.event_name == 'release' | |
run: | | |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u colomoto /usr/share/miniconda/envs/test/conda-bld/linux-64/*.tar.bz2 --force; | |
cmaboss_conda_condaforge: | |
name: Build cMaBoSS Anaconda package (conda-forge) | |
runs-on: ubuntu-22.04 | |
needs: cmaboss | |
strategy: | |
fail-fast: false | |
matrix: | |
version: [{python: "3.8", numpy: "1.24"}, {python: "3.9", numpy: "2.0"}, {python: "3.10", numpy: "2.1"}, {python: "3.11", numpy: "2.1"}, {python: "3.12", numpy: "2.1"}] | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
channels: conda-forge | |
python-version: 3.12 | |
use-mamba: true | |
- name: Install conda-build | |
run: | | |
conda install conda-build anaconda-client conda-verify | |
- name: Build cMaBoSS Anaconda package | |
run: | | |
CUSTOM_BUILD_NUMBER=1 conda build -c colomoto --variants "{\"python\": [\"${{ matrix.version.python }}\"], \"numpy\": [\"${{ matrix.version.numpy }}\"]}" conda/cmaboss; | |
- name: Upload cMaBoSS Ananconda package on vincent-noel | |
run: | | |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u vincent-noel /usr/share/miniconda/envs/test/conda-bld/linux-64/*.tar.bz2 --force; | |
- name: Upload cMaBoSS Ananconda package on colomoto | |
if: github.repository == 'sysbio-curie/MaBoSS' && github.event_name == 'release' | |
run: | | |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u colomoto /usr/share/miniconda/envs/test/conda-bld/linux-64/*.tar.bz2 --force; | |