Tim*_*and 9 environment installation conda samtools github-actions
我正在使用 GitHub Actions 设置持续集成。先决条件之一 ( samtools) 是最容易安装的conda。使用已安装软件包的标准方法是激活相应的conda环境。我正在寻找一种激活conda环境的方法。常见的激活方法均失败,详情见下文。我当前的解决方法是添加到由 . 安装的PATH硬编码路径。但如果安装的软件包数量增加,这是不可维护的。这也不是使用随.samtoolscondaconda
细节:
.github/workflows/conda.yml
name: Conda
on: [push]
jobs:
# label of the job
tests:
name: Tests
# containers must run in Linux based operating systems
runs-on: ubuntu-latest
# Docker Hub image that `postgres-job` executes in
container: node:latest
# service containers to run with `postgres-job`
steps:
- uses: conda-incubator/setup-miniconda@v2
with:
miniconda-version: "latest"
channels: bioconda, conda-forge, defaults
use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly!
auto-update-conda: true
auto-activate-base: true
- name: Install samtools
run: |
set -x
echo "begin: PATH=$PATH;"
conda create -y --name samtools samtools
conda activate samtools || true
echo "after conda activate samtools: PATH=$PATH;"
which samtools || true
$CONDA/bin/activate samtools || true
echo "after CONDA/bin/activate samtools: PATH=$PATH;"
which samtools || true
export PATH="3/envs/samtools/bin:$PATH"
echo "after export PATH=3/envs/samtools/bin:PATH: PATH=$PATH;"
which samtools || true
Run Code Online (Sandbox Code Playgroud)
输出:
Run set -x
begin: PATH=3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;
+ echo begin: PATH=3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;
+ conda create -y --name samtools samtools
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... done
[...]
# To activate this environment, use
#
# $ conda activate samtools
#
# To deactivate an active environment, use
#
# $ conda deactivate
+ conda activate samtools
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
+ true
after conda activate samtools: PATH=3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;
+ echo after conda activate samtools: PATH=3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;
+ which samtools
+ true
+ 3/bin/activate samtools
+ echo after CONDA/bin/activate samtools: PATH=3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;
+ which samtools
after CONDA/bin/activate samtools: PATH=3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;
+ true
after export PATH=3/envs/samtools/bin:PATH: PATH=3/envs/samtools/bin:3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;
+ export PATH=3/envs/samtools/bin:3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ echo after export PATH=3/envs/samtools/bin:PATH: PATH=3/envs/samtools/bin:3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;
+ which samtools
3/envs/samtools/bin/samtools
Run Code Online (Sandbox Code Playgroud)
mer*_*erv 10
该文档还给出了自动激活的示例。具体来说,示例 #3通过几个关键组件演示了这一点:
jobs:
example-3:
defaults:
run:
shell: bash -l {0}
Run Code Online (Sandbox Code Playgroud)
setup-miniconda。在示例中etc/example-environment.yml,它定义了环境anaconda-client-env,并将其设置为使用activate-environment参数激活。 steps:
- uses: conda-incubator/setup-miniconda@v2
with:
activate-environment: anaconda-client-env
environment-file: etc/example-environment.yml
auto-activate-base: false
- run: |
conda info
conda list
Run Code Online (Sandbox Code Playgroud)
我有一个用于测试环境定义的存储库,因此这里是samtools. 请注意,我更喜欢 Mamba,并且还建议捕获显式内容mamba env export来记录环境。
name: so-samtools
channels:
- conda-forge
- bioconda
- defaults
dependencies:
- samtools
Run Code Online (Sandbox Code Playgroud)
.github/workflows/so-samtools.yaml
name: so-samtools
on:
push:
paths:
- 'envs/so-samtools.yaml'
- '.github/workflows/so-samtools.yaml'
jobs:
create-env:
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- name: checkout repository
uses: actions/checkout@v2
- name: create environment with mamba
uses: conda-incubator/setup-miniconda@v2
with:
mamba-version: "*"
channels: conda-forge,bioconda,defaults
auto-activate-base: false
activate-environment: so-samtools
environment-file: envs/so-samtools.yaml
- name: check solution
run: |
mamba env export
- name: test samtools
run: |
which samtools
samtools help
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5640 次 |
| 最近记录: |