Skip to content

Adjust default behavior of MFA2Tree.build - disable UFBoot and scfl #35

Adjust default behavior of MFA2Tree.build - disable UFBoot and scfl

Adjust default behavior of MFA2Tree.build - disable UFBoot and scfl #35

name: CI/build and test
on:
push:
branches: ["main", "dev"]
paths: ["**.py", "requirements.txt"]
pull_request:
branches: ["main", "dev"]
paths: ["**.py", "requirements.txt"]
workflow_dispatch:
workflow_call:
jobs:
build-muscle:
uses: ./.github/workflows/build_muscle.yml
build-aster:
uses: ./.github/workflows/build_aster.yml
build-fasttree:
uses: ./.github/workflows/build_fasttree.yml
build-raxml:
uses: ./.github/workflows/build_raxml.yml
build-iqtree:
uses: ./.github/workflows/build_iqtree.yml
build-and-test:
name: Build and test
runs-on: ubuntu-latest
env:
OS: Linux
needs:
[build-muscle, build-aster, build-fasttree, build-raxml, build-iqtree]
strategy:
fail-fast: false
matrix:
python: ["3.9", "3.10", "3.11", "3.12"]
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-tags: true
- run: git fetch --tags
- name: Cache Python packages
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: pip-${{ runner.os }}-${{ matrix.python }}-${{ hashFiles('requirements.txt') }}
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install pytest pytest-cov pytest-dependency pytest-env pytest-order
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with Ruff
uses: astral-sh/ruff-action@v3
- name: Install package
run: pip install .
- name: Cache muscle
uses: actions/cache/restore@v4
with:
path: ~/.local/bin/muscle
key: ${{ runner.os }}-muscle
- name: Cache ASTER
uses: actions/cache/restore@v4
with:
path: ~/.local/bin/astral
key: ${{ runner.os }}-ASTER
- name: Cache FastTree
uses: actions/cache/restore@v4
with:
path: ~/.local/bin/VeryFastTree
key: ${{ runner.os }}-VeryFastTree
- name: Cache RAxML
uses: actions/cache/restore@v4
with:
path: ~/.local/bin/raxml-ng
key: ${{ runner.os }}-raxml-ng
- name: Cache IQTree
uses: actions/cache/restore@v4
with:
path: ~/.local/bin/iqtree2
key: ${{ runner.os }}-IQTree
- name: Test with pytest
run: |
package_name=$(grep '^name = ' pyproject.toml | sed 's/name = "\(.*\)"/\1/' | tr -d '[:space:]')
pytest -vv --cov=$package_name --cov-report=xml --runslow
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
flags: ${{ matrix.python }}
env_vars: OS
files: ./coverage.xml
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true