Update cd-hit and mmseq installation14 #557
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: Install cd-hit (Windows) | |
if: runner.os == 'Windows' | |
shell: pwsh | |
run: | | |
curl -L -o cd-hit.tar.gz https://github.com/weizhongli/cdhit/releases/download/V4.8.1/cd-hit-v4.8.1-2019-0228.tar.gz | |
New-Item -ItemType Directory -Force -Path $Env:USERPROFILE\cdhit | |
tar -xzf cd-hit.tar.gz -C $Env:USERPROFILE\cdhit | |
$cdhitBinPath = "$Env:USERPROFILE\cdhit\cd-hit-v4.8.1-2019-0228\bin" | |
echo "$cdhitBinPath" | Out-File -Append -FilePath $Env:GITHUB_PATH | |
[Environment]::SetEnvironmentVariable("PATH", "$Env:PATH;$cdhitBinPath", "Process") | |
- name: Install mmseqs2 (Windows) | |
if: runner.os == 'Windows' | |
shell: pwsh | |
run: | | |
curl -L -o mmseqs2.zip https://mmseqs.com/latest/mmseqs-win64.zip | |
New-Item -ItemType Directory -Force -Path $Env:USERPROFILE\mmseqs | |
Expand-Archive -Path mmseqs2.zip -DestinationPath $Env:USERPROFILE\mmseqs | |
$mmseqsBinPath = "$Env:USERPROFILE\mmseqs\mmseqs-win64" | |
echo "$mmseqsBinPath" | Out-File -Append -FilePath $Env:GITHUB_PATH | |
[Environment]::SetEnvironmentVariable("PATH", "$Env:PATH;$mmseqsBinPath", "Process") | |
- name: Verify cd-hit installation | |
if: runner.os == 'Windows' | |
shell: pwsh | |
run: | | |
$cdhitBinPath = "$Env:USERPROFILE\cdhit\cd-hit-v4.8.1-2019-0228\bin" | |
$env:Path += ";$cdhitBinPath" | |
Write-Host "Updated PATH: $env:Path" | |
if (-Not (Get-Command cd-hit -ErrorAction SilentlyContinue)) { | |
Write-Error "cd-hit not found in PATH" | |
} else { | |
Write-Host "cd-hit found in PATH" | |
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" | |
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 |