update main README #428
Workflow file for this run
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
# This workflow will install Python dependencies, run tests and lint with a single version of Python | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
name: MACS3 CI non x64 | |
on: | |
push: | |
paths-ignore: | |
- 'docs/**' | |
pull_request: | |
paths-ignore: | |
- 'docs/**' | |
jobs: | |
build_job: | |
runs-on: ubuntu-20.04 | |
name: Build on ${{ matrix.arch }} | |
strategy: | |
matrix: | |
include: | |
- arch: aarch64 | |
distro: bullseye | |
- arch: armv7 | |
distro: bullseye | |
- arch: ppc64le | |
distro: bullseye | |
- arch: s390x | |
distro: bullseye | |
steps: | |
- name: Checkout MACS | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'true' | |
- name: Set up arch and run (bullseye Python 3.9) | |
uses: uraimo/run-on-arch-action@v2 | |
id: build | |
with: | |
arch: ${{ matrix.arch }} | |
distro: ${{ matrix.distro }} | |
githubToken: ${{ github.token }} | |
# The shell to run commands with in the container | |
shell: /bin/bash | |
# Mount the current working directory (with checked-out codes) as /MACS3 in the container | |
dockerRunArgs: | | |
-v "${PWD}:/MACS3" -u macs3 | |
# Create an artifacts directory on runner | |
# Install some dependencies in the container. This speeds up builds if | |
# you are also using githubToken. Any dependencies installed here will | |
# be part of the container image that gets cached, so subsequent | |
# builds don't have to re-install them. The image layer is cached | |
# publicly in your project's package repository, so it is vital that | |
# no secrets are present in the container state or logs. | |
install: | | |
useradd -m macs3 | |
mkdir -p /MACS3 | |
chown -R macs3:macs3 /MACS3 | |
# install dependencies | |
apt-get update -qq -y | |
apt-get install apt-utils | |
apt-get install -yq libblas3 liblapack3 libblas-dev liblapack-dev | |
# we rely on Debian/Linux python packages for numpy/scipy/sklearn | |
apt-get install -yq python3 python3-pip python3-virtualenv python3-wheel python3-numpy python3-scipy python3-sklearn cython3 | |
apt-get install -yq procps zlib1g zlib1g-dev gfortran | |
run: | | |
echo `uname -a` | |
cd /home/macs3/ | |
# let's create virtualenv | |
virtualenv --system-site-packages macsenv | |
source macsenv/bin/activate | |
# copy source code over | |
cp -r /MACS3 . | |
cd MACS3 | |
# let's make sure this file is gone... | |
rm -f no-global-site-packages.txt | |
# upgrade pip | |
pip install --progress-bar off --upgrade pip | |
# install dependencies that are not in Debian/Linux | |
pip install --upgrade-strategy only-if-needed --progress-bar off Cython | |
pip install --upgrade-strategy only-if-needed --progress-bar off hmmlearn | |
pip install --upgrade-strategy only-if-needed --progress-bar off cykhash | |
pip install --upgrade --progress-bar off pytest | |
# install MACS3; only-if-needed won't try to upgrade Debian/Linux python3 libs | |
pip install --upgrade-strategy only-if-needed --no-build-isolation --progress-bar off . | |
# run test | |
pytest --runxfail && cd test && ./cmdlinetest-nohmmratac macs3 | |