Skip to content

Update M1 working directory #3

Update M1 working directory

Update M1 working directory #3

Workflow file for this run

name: MacOS
on:
push:
pull_request:
release:
types: [created]
jobs:
maboss_macos:
name: MaBoSS
runs-on: macos-11
env:
GCC: gcc-11
CXX: g++-11
INSTALL_PATH: /usr/local
BUILD_PATH: /tmp/
LIBXML_LIBDIR: /usr/local/opt/libxml2/lib/libxml2.dylib
LIBXML_INCLUDEDIR: /usr/local/opt/libxml2/include/libxml2/
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run : |
brew install flex bison gcc cmake
pip install numpy
pwd
- name: Manually install libxml2 2.11
run: |
wget https://github.com/Homebrew/homebrew-core/raw/38ba35404e3cdb398694419850179e0023158887/Formula/lib/libxml2.rb
brew install -s libxml2.rb
- name: Cache compiled libSBML
id: cache-libsbml-gcc
uses: actions/cache@v4
with:
path: /tmp/libsbml-5.20.2
key: ${{ runner.os }}-libSBML-5.20.2-g++11-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 MaBoSS
run: |
cd engine/src
make clean
export CXXFLAGS="${CXXFLAGS} -I/usr/local/include -I/usr/local/include/libxml2"
export LDFLAGS="${LDFLAGS} -L/usr/local/lib -lxml2"
make CXX=g++-11 GCC=gcc-11 install SBML_COMPAT=1
make CXX=g++-11 GCC=gcc-11 MAXNODES=128 install SBML_COMPAT=1
- name: Test MaBoSS
run: bash scripts/run_tests.sh
maboss_llvm_macos:
name: MaBoSS (clang)
runs-on: macos-11
env:
GCC: clang
CXX: clang++
INSTALL_PATH: /usr/local
BUILD_PATH: /tmp/
LIBXML_LIBDIR: /usr/local/opt/libxml2/lib/libxml2.dylib
LIBXML_INCLUDEDIR: /usr/local/opt/libxml2/include/libxml2/
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run : |
brew install flex bison cmake
pip install numpy
- name: Manually install libxml2 2.11
run: |
wget https://github.com/Homebrew/homebrew-core/raw/38ba35404e3cdb398694419850179e0023158887/Formula/lib/libxml2.rb
brew install -s libxml2.rb
- name: Cache compiled libSBML
id: cache-libsbml-clang
uses: actions/cache@v4
with:
path: /tmp/libsbml-5.20.2
key: ${{ runner.os }}-libSBML-5.20.2-clang++-namespace
- name: Compiling libSBML
if: steps.cache-libsbml-clang.outputs.cache-hit != 'true'
run: bash scripts/build_libsbml.sh
- name: Install libSBML
run: |
sudo bash scripts/install_libsbml.sh
- name: Build MaBoSS
run: |
cd engine/src
make clean
make CXX=g++ install SBML_COMPAT=1
make CXX=g++ MAXNODES=128 install SBML_COMPAT=1
- name: Test MaBoSS
run: bash scripts/run_tests.sh
maboss_binary_macos:
name: MaBoSS MacOSX 64 bits binary
runs-on: macos-11
needs: [maboss_macos, maboss_llvm_macos]
env:
GCC: clang
CXX: clang++
INSTALL_PATH: /usr/local
BUILD_PATH: /tmp/
LIBXML_LIBDIR: /usr/local/opt/libxml2/lib/libxml2.dylib
LIBXML_INCLUDEDIR: /usr/local/opt/libxml2/include/libxml2/
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run : |
brew install flex bison cmake gcc@11
- name: Manually install libxml2 2.11
run: |
wget https://github.com/Homebrew/homebrew-core/raw/38ba35404e3cdb398694419850179e0023158887/Formula/lib/libxml2.rb
brew install -s libxml2.rb
- name: Cache compiled libSBML
id: cache-libsbml-clang
uses: actions/cache@v4
with:
path: /tmp/libsbml-5.20.2
key: ${{ runner.os }}-libSBML-5.20.2-clang++-namespace
- name: Compiling libSBML
if: steps.cache-libsbml-gcc11.outputs.cache-hit != 'true'
run: bash scripts/build_libsbml.sh
- name: Install libSBML
run: sudo bash scripts/install_libsbml.sh
- name: Build binary
run: |
rm -fr engine/pub/*
cd engine/src
make clean
make install_static GCC=clang CXX=clang++ SBML_COMPAT=1
make install_static GCC=clang CXX=clang++ MAXNODES=128 SBML_COMPAT=1
make install_static GCC=clang CXX=clang++ MAXNODES=256 SBML_COMPAT=1
make install_static GCC=clang CXX=clang++ MAXNODES=512 SBML_COMPAT=1
make install_static GCC=clang CXX=clang++ MAXNODES=1024 SBML_COMPAT=1
cd ../pub
zip MaBoSS-osx64.zip *
- uses: actions/upload-artifact@v4
if: github.event_name != 'release'
with:
name: MaBoSS-osx64
path: /Users/runner/work/MaBoSS/MaBoSS/engine/pub/MaBoSS-osx64.zip
- uses: actions/upload-release-asset@v1
if: github.event_name == 'release'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_name: MaBoSS-osx64.zip
asset_path: /Users/runner/work/MaBoSS/MaBoSS/engine/pub/MaBoSS-osx64.zip
asset_content_type: application/zip
maboss_library_macos:
name: Building MaBoSS osx library
runs-on: macos-11
needs: [maboss_macos, maboss_llvm_macos]
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run : |
brew install flex bison gcc@11
- name: Build library
run: |
rm -fr engine/pub/*
cd engine/src
make clean
make install_lib GCC=gcc-11 CXX=g++-11
make install_lib MAXNODES=128 GCC=gcc-11 CXX=g++-11
make install_lib MAXNODES=256 GCC=gcc-11 CXX=g++-11
make install_lib MAXNODES=512 GCC=gcc-11 CXX=g++-11
make install_lib MAXNODES=1024 GCC=gcc-11 CXX=g++-11
make install_alib GCC=gcc-11 CXX=g++-11
make install_alib MAXNODES=128 GCC=gcc-11 CXX=g++-11
make install_alib MAXNODES=256 GCC=gcc-11 CXX=g++-11
make install_alib MAXNODES=512 GCC=gcc-11 CXX=g++-11
make install_alib MAXNODES=1024 GCC=gcc-11 CXX=g++-11
make clean
cd ../../../
tar -zcvf libMaBoSS-osx64.tar.gz MaBoSS/README.md MaBoSS/LICENSE MaBoSS/engine/src MaBoSS/engine/include MaBoSS/engine/lib
- uses: actions/upload-artifact@v4
if: github.event_name != 'release'
with:
name: libMaBoSS-osx64
path: /Users/runner/work/MaBoSS/libMaBoSS-osx64.tar.gz
- uses: actions/upload-release-asset@v1
if: github.event_name == 'release'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_name: libMaBoSS-osx64.tar.gz
asset_path: /Users/runner/work/MaBoSS/libMaBoSS-osx64.tar.gz
asset_content_type: application/gzip
maboss_library_macos_m1:
name: Building MaBoSS osx library for arm64
runs-on: flyci-macos-large-latest-m1
needs: [maboss_macos, maboss_llvm_macos]
steps:
- uses: actions/checkout@v4
- name: Downgrade XCODE to 14.3.1
run: sudo xcode-select -switch /Applications/Xcode_14.3.1.app
- name: Install dependencies
run : |
brew install flex bison gcc@13
- name: Build library
run: |
rm -fr engine/pub/*
cd engine/src
make clean
make install_lib GCC=gcc-13 CXX=g++-13
make install_lib MAXNODES=128 GCC=gcc-13 CXX=g++-13
make install_lib MAXNODES=256 GCC=gcc-13 CXX=g++-13
make install_lib MAXNODES=512 GCC=gcc-13 CXX=g++-13
make install_lib MAXNODES=1024 GCC=gcc-13 CXX=g++-13
make install_alib GCC=gcc-13 CXX=g++-13
make install_alib MAXNODES=128 GCC=gcc-13 CXX=g++-13
make install_alib MAXNODES=256 GCC=gcc-13 CXX=g++-13
make install_alib MAXNODES=512 GCC=gcc-13 CXX=g++-13
make install_alib MAXNODES=1024 GCC=gcc-13 CXX=g++-13
make clean
cd ../../../
tar -zcvf libMaBoSS-macos-arm64.tar.gz MaBoSS/README.md MaBoSS/LICENSE MaBoSS/engine/src MaBoSS/engine/include MaBoSS/engine/lib
- uses: actions/upload-artifact@v4
if: github.event_name != 'release'
with:
name: libMaBoSS-macos-arm64
path: /Users/runner/_work/MaBoSS/libMaBoSS-macos-arm64.tar.gz
- uses: actions/upload-release-asset@v1
if: github.event_name == 'release'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_name: libMaBoSS-macos-arm64.tar.gz
asset_path: /Users/runner/_work/MaBoSS/libMaBoSS-macos-arm64.tar.gz
asset_content_type: application/gzip
maboss_library_sbml_macos:
name: Building MaBoSS osx library with libSBML
runs-on: macos-11
needs: [maboss_macos, maboss_llvm_macos]
env:
GCC: gcc-11
CXX: g++-11
INSTALL_PATH: /usr/local/
BUILD_PATH: /tmp/
LIBXML_LIBDIR: /usr/local/opt/libxml2/lib/libxml2.dylib
LIBXML_INCLUDEDIR: /usr/local/opt/libxml2/include/libxml2
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run : |
brew install flex bison gcc@11 cmake
- name: Manually install libxml2 2.11
run: |
wget https://github.com/Homebrew/homebrew-core/raw/38ba35404e3cdb398694419850179e0023158887/Formula/lib/libxml2.rb
brew install -s libxml2.rb
- name: Cache compiled libSBML
id: cache-libsbml-gcc11
uses: actions/cache@v4
with:
path: /tmp/libsbml-5.20.2
key: ${{ runner.os }}-libSBML-5.20.2-g++11-namespace
- name: Compiling libSBML
if: steps.cache-libsbml-gcc11.outputs.cache-hit != 'true'
run: bash scripts/build_libsbml.sh
- name: Install libSBML
run: sudo bash scripts/install_libsbml.sh
- name: Build library
run: |
export CXXFLAGS="${CXXFLAGS} -I/usr/local/include -I/usr/local/include/libxml2"
export LDFLAGS="${LDFLAGS} -L/usr/local/lib -lxml2"
rm -fr engine/pub/*
cd engine/src
make clean
make install GCC=gcc-11 CXX=g++-11
make install_lib SBML_COMPAT=1 GCC=gcc-11 CXX=g++-11
make install_lib SBML_COMPAT=1 GCC=gcc-11 MAXNODES=128 CXX=g++-11
make install_lib SBML_COMPAT=1 GCC=gcc-11 MAXNODES=256 CXX=g++-11
make install_lib SBML_COMPAT=1 GCC=gcc-11 MAXNODES=512 CXX=g++-11
make install_lib SBML_COMPAT=1 GCC=gcc-11 MAXNODES=1024 CXX=g++-11
make install_alib SBML_COMPAT=1 GCC=gcc-11 CXX=g++-11
make install_alib SBML_COMPAT=1 GCC=gcc-11 MAXNODES=128 CXX=g++-11
make install_alib SBML_COMPAT=1 GCC=gcc-11 MAXNODES=256 CXX=g++-11
make install_alib SBML_COMPAT=1 GCC=gcc-11 MAXNODES=512 CXX=g++-11
make install_alib SBML_COMPAT=1 GCC=gcc-11 MAXNODES=1024 CXX=g++-11
make clean
cd ../../../
tar -zcvf libMaBoSS-sbml-osx64.tar.gz MaBoSS/README.md MaBoSS/LICENSE MaBoSS/engine/src MaBoSS/engine/include MaBoSS/engine/lib
- uses: actions/upload-artifact@v4
if: github.event_name != 'release'
with:
name: libMaBoSS-sbml-osx64
path: /Users/runner/work/MaBoSS/libMaBoSS-sbml-osx64.tar.gz
- uses: actions/upload-release-asset@v1
if: github.event_name == 'release'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_name: libMaBoSS-sbml-osx64.tar.gz
asset_path: /Users/runner/work/MaBoSS/libMaBoSS-sbml-osx64.tar.gz
asset_content_type: application/gzip
conda_maboss_macosx:
name: Build Conda MaBoSS package
runs-on: macos-12
needs: [maboss_macos, maboss_llvm_macos]
defaults:
run:
shell: sh -l {0}
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
channels: defaults
python-version: 3.12
miniforge-variant: Mambaforge
use-mamba: true
- name: Installing conda-build
run: |
conda install conda-build conda-verify
- name: Installing MacOSX10.10 SDK
run: |
wget https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX10.10.sdk.tar.xz
sudo tar xf MacOSX10.10.sdk.tar.xz -C /opt
echo "conda_build:" > ~/.condarc
echo " config_file: ~/.conda/conda_build_config.yaml" >> ~/.condarc
echo "CONDA_BUILD_SYSROOT:" > ~/.conda/conda_build_config.yaml
echo " - /opt/MacOSX10.10.sdk # [osx]" >> ~/.conda/conda_build_config.yaml
- name: Build MaBoSS Anaconda package
run: |
conda build -c colomoto conda/maboss
- name: Caching produced conda package
uses: actions/cache@v4
with:
path: |
/Users/runner/miniconda3/envs/test/conda-bld/*
key: ${{ runner.os }}-maboss-conda-${{ github.run_id }}
conda_maboss_conda_forge_macosx:
name: Build Conda MaBoSS package (conda-forge)
runs-on: macos-12
needs: [maboss_macos, maboss_llvm_macos]
defaults:
run:
shell: sh -l {0}
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
channels: conda-forge
python-version: 3.12
miniforge-variant: Mambaforge
use-mamba: true
- name: Installing conda-build
run: |
conda install conda-build conda-verify
- name: Installing MacOSX10.10 SDK
run: |
wget https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX10.10.sdk.tar.xz
sudo tar xf MacOSX10.10.sdk.tar.xz -C /opt
echo "conda_build:" > ~/.condarc
echo " config_file: ~/.conda/conda_build_config.yaml" >> ~/.condarc
echo "CONDA_BUILD_SYSROOT:" > ~/.conda/conda_build_config.yaml
echo " - /opt/MacOSX10.10.sdk # [osx]" >> ~/.conda/conda_build_config.yaml
- name: Build MaBoSS Anaconda package
run: |
CUSTOM_BUILD_NUMBER=1 conda build -c colomoto conda/maboss
- name: Caching produced conda package
uses: actions/cache@v4
with:
path: |
/Users/runner/miniconda3/envs/test/conda-bld/*
key: ${{ runner.os }}-maboss-conda-forge-${{ github.run_id }}
maboss_conda_test_macosx:
name: MaBoSS Anaconda package test
runs-on: macos-12
needs: conda_maboss_macosx
defaults:
run:
shell: sh -l {0}
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
channels: defaults
python-version: 3.12
miniforge-variant: Mambaforge
use-mamba: true
- name: Install conda-build
run: |
conda install conda-build anaconda-client
- name: Caching produced conda package
uses: actions/cache@v4
with:
path: |
/Users/runner/miniconda3/envs/test/conda-bld/*
key: ${{ runner.os }}-maboss-conda-${{ github.run_id }}
- name: Install package
run: |
python -m conda_index /Users/runner/miniconda3/envs/test/conda-bld/
conda install -c file:///Users/runner/miniconda3/envs/test/conda-bld/ -c colomoto maboss
- name: Test package
run: |
pip install numpy
export MABOSS=/Users/runner/miniconda3/envs/test/bin/MaBoSS
export MABOSS_128n=/Users/runner/miniconda3/envs/test/bin/MaBoSS_128n
export MABOSS_CLIENT=/Users/runner/miniconda3/envs/test/bin/MaBoSS-client
export MABOSS_SERVER=/Users/runner/miniconda3/envs/test/bin/MaBoSS-server
export MABOSS_SERVER_128n=/Users/runner/miniconda3/envs/test/bin/MaBoSS_128n-server
bash -c "cd engine/tests; bash ./test-cellcycle.sh"
bash -c "cd engine/tests; bash ./test-ensemble.sh"
bash -c "cd engine/tests; bash ./test-ewing.sh"
bash -c "cd engine/tests; bash ./test-server.sh"
bash -c "cd engine/tests; bash ./test-prngs.sh"
bash -c "cd engine/tests; bash ./test-rngs.sh"
bash -c "cd engine/tests; bash ./test-sbml.sh"
maboss_conda_test_conda_forge_macosx:
name: MaBoSS Anaconda package test (conda-forge)
runs-on: macos-12
needs: conda_maboss_conda_forge_macosx
defaults:
run:
shell: sh -l {0}
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
channels: conda-forge
python-version: 3.12
miniforge-variant: Mambaforge
use-mamba: true
- name: Install conda-build
run: |
conda install conda-build anaconda-client
- name: Caching produced conda package
uses: actions/cache@v4
with:
path: |
/Users/runner/miniconda3/envs/test/conda-bld/*
key: ${{ runner.os }}-maboss-conda-forge-${{ github.run_id }}
- name: Install package
run: |
python -m conda_index /Users/runner/miniconda3/envs/test/conda-bld/
conda install -c file:///Users/runner/miniconda3/envs/test/conda-bld/ -c colomoto maboss
- name: Test package
run: |
pip install numpy
export MABOSS=/Users/runner/miniconda3/envs/test/bin/MaBoSS
export MABOSS_128n=/Users/runner/miniconda3/envs/test/bin/MaBoSS_128n
export MABOSS_CLIENT=/Users/runner/miniconda3/envs/test/bin/MaBoSS-client
export MABOSS_SERVER=/Users/runner/miniconda3/envs/test/bin/MaBoSS-server
export MABOSS_SERVER_128n=/Users/runner/miniconda3/envs/test/bin/MaBoSS_128n-server
bash -c "cd engine/tests; bash ./test-cellcycle.sh"
bash -c "cd engine/tests; bash ./test-ensemble.sh"
bash -c "cd engine/tests; bash ./test-ewing.sh"
bash -c "cd engine/tests; bash ./test-server.sh"
bash -c "cd engine/tests; bash ./test-prngs.sh"
bash -c "cd engine/tests; bash ./test-rngs.sh"
bash -c "cd engine/tests; bash ./test-sbml.sh"
maboss_conda_publish_macosx:
name: MaBoSS Anaconda package publication
runs-on: macos-12
needs: maboss_conda_test_macosx
defaults:
run:
shell: sh -l {0}
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
channels: defaults
python-version: 3.12
miniforge-variant: Mambaforge
use-mamba: true
- name: Install conda-build
run: |
conda install conda-build anaconda-client
- name: Caching produced conda package
uses: actions/cache@v4
with:
path: |
/Users/runner/miniconda3/envs/test/conda-bld/*
key: ${{ runner.os }}-maboss-conda-${{ github.run_id }}
- name: Upload MaBoSS to Anaconda cloud on vincent-noel
run: |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u vincent-noel /Users/runner/miniconda3/envs/test/conda-bld/osx-64/*.tar.bz2 --force;
- name: Upload MaBoSS to Anaconda cloud on colomoto
if: github.repository == 'sysbio-curie/MaBoSS' && github.event_name == 'release'
run: |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u colomoto /Users/runner/miniconda3/envs/test/conda-bld/osx-64/*.tar.bz2 --force;
maboss_conda_publish_conda_forge_macosx:
name: MaBoSS Anaconda package publication (conda-forge)
runs-on: macos-12
needs: maboss_conda_test_conda_forge_macosx
defaults:
run:
shell: sh -l {0}
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
channels: conda-forge
python-version: 3.12
miniforge-variant: Mambaforge
use-mamba: true
- name: Install conda-build
run: |
conda install conda-build anaconda-client
- name: Caching produced conda package
uses: actions/cache@v4
with:
path: |
/Users/runner/miniconda3/envs/test/conda-bld/*
key: ${{ runner.os }}-maboss-conda-forge-${{ github.run_id }}
- name: Upload MaBoSS to Anaconda cloud on vincent-noel
run: |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u vincent-noel /Users/runner/miniconda3/envs/test/conda-bld/osx-64/*.tar.bz2 --force;
- name: Upload MaBoSS to Anaconda cloud on colomoto
if: github.repository == 'sysbio-curie/MaBoSS' && github.event_name == 'release'
run: |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u colomoto /Users/runner/miniconda3/envs/test/conda-bld/osx-64/*.tar.bz2 --force;