Update cd-hit and mmseq installation18 #561
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: Unit Tests | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python-version: ['3.9', '3.10', '3.11', '3.12'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cache Python dependencies | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('**/requirements.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip-${{ matrix.python-version }}- | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
pip install pytest | |
- name: Install cd-hit (Ubuntu) | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y cd-hit | |
- name: Install mmseqs2 (Ubuntu) | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y mmseqs2 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
pip install pytest | |
- name: Install cd-hit and mmseqs2 (Ubuntu) | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y cd-hit mmseqs2 | |
- name: Set up WSL and compile cd-hit | |
if: runner.os == 'Windows' | |
shell: bash | |
run: | | |
sudo apt update | |
sudo apt install -y build-essential zlib1g-dev | |
wget https://github.com/weizhongli/cdhit/releases/download/V4.8.1/cd-hit-v4.8.1-2019-0228.tar.gz | |
tar -xzf cd-hit-v4.8.1-2019-0228.tar.gz | |
cd cd-hit-v4.8.1-2019-0228 | |
make | |
sudo cp cd-hit /usr/local/bin/ | |
- name: Install mmseqs2 (Windows) | |
if: runner.os == 'Windows' | |
shell: pwsh | |
run: | | |
curl -L -o mmseqs2.zip https://mmseqs.com/latest/mmseqs-win64.zip | |
$mmseqsDir = "$Env:USERPROFILE\mmseqs" | |
New-Item -ItemType Directory -Force -Path $mmseqsDir | |
Expand-Archive -Path mmseqs2.zip -DestinationPath $mmseqsDir | |
$mmseqsBinPath = "$mmseqsDir\mmseqs-win64" | |
Write-Host "mmseqs2 binary path: $mmseqsBinPath" | |
echo "$mmseqsBinPath" | Out-File -Append -FilePath $Env:GITHUB_PATH | |
[Environment]::SetEnvironmentVariable("PATH", "$Env:PATH;$mmseqsBinPath", "Process") | |
Write-Host "Contents of mmseqs2 directory:" | |
Get-ChildItem $mmseqsBinPath | |
- name: Verify cd-hit installation (WSL) | |
if: runner.os == 'Windows' | |
shell: bash | |
run: | | |
if ! command -v cd-hit &> /dev/null | |
then | |
echo "cd-hit could not be found" | |
exit 1 | |
fi | |
cd-hit --version | |
- name: Verify mmseqs2 installation | |
if: runner.os == 'Windows' | |
shell: pwsh | |
run: | | |
$mmseqsBinPath = "$Env:USERPROFILE\mmseqs\mmseqs-win64" | |
$env:Path += ";$mmseqsBinPath" | |
Write-Host "Updated PATH: $env:Path" | |
Write-Host "Checking mmseqs binary in PATH:" | |
if (-Not (Get-Command mmseqs -ErrorAction SilentlyContinue)) { | |
Write-Error "mmseqs not found in PATH" | |
} else { | |
Write-Host "mmseqs found in PATH" | |
mmseqs --version | |
} | |
- name: Run Tests | |
run: pytest tests | |
env: | |
HYPOTHESIS_DEADLINE: 10000000 | |
MPLBACKEND: Agg |