我最近从TravisCI切换到circleCI 2.0,当我尝试:export PATH="$MINICONDA/bin:$PATH"
时,我遇到了一个问题,
它不会添加路径变量。
我尝试使用SSH连接进行调试。我首先检查路径变量是否已设置(它不是),稍后我尝试手动设置它并且它有效。但是,它在自动执行构建时不起作用。
以下是错误消息:
Complete output from command python setup.py egg_info: Traceback (most
recent call last): File "<string>", line 1, in <module> File
"/tmp/pip-build-m_klG2/snakemake/setup.py", line 13
print("At least Python 3.5 is required.\n", file=sys.stderr)
基本上,没有看到通过conda安装的python(3.6)并尝试使用默认的python(2.7)运行pip install -r python-requirements.txt
命令。
我一定错过了什么,但我无法理解。
我在下面提供了完整的config.yml
文件。如果你能解释这个问题,我将非常感激。
version: 2
jobs:
build:
branches:
only:
-dev
machine: true
working_directory: ~/repo
steps:
- checkout
- run:
name: install miniconda
command: |
cd /home/circleci
export MINICONDA=$HOME/miniconda
export PATH="$MINICONDA/bin:$PATH"
hash -r
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -f -p $MINICONDA
conda config --set always_yes yes
conda update conda
conda info -a
conda create -n testenv python=3.6.0
source activate testenv
- run:
name: install requirements
command: |
cd /home/circleci/repo
pip install -r python-requirements.txt
pip install pytest-ordering
- run:
name: download sample dataset
command: |
cd /home/circleci/repo/unit_tests/test_data
wget http://cf.10xgenomics.com/samples/cell-exp/2.1.0/t_3k/t_3k_filtered_gene_bc_matrices.tar.gz
tar -xvfz t_3k_filtered_gene_bc_matrices.tar.gz
- run:
name: run tests
command: |
cd /home/circleci/repo
pytest ./unit_tests
- store_artifacts:
path: test-reports
destination: test-reports
答案 0 :(得分:2)
这似乎是environment
flag的一个很好的用例。
- run:
name: install miniconda
environment:
MINICONDA: $HOME/miniconda
PATH: $MINICONDA/bin:$PATH
command: |
cd /home/circleci
hash -r
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -f -p $MINICONDA
conda config --set always_yes yes
conda update conda
conda info -a
conda create -n testenv python=3.6.0
source activate testenv
答案 1 :(得分:2)
最后,我使用the docs 2.0中的插值环境变量解决了它。
步骤:
将环境变量附加到〜/ .bashrc
echo 'export MINICONDA=$HOME/miniconda' >> ~/.bashrc
在你想要访问这些变量的规则中找到〜/ .bashrc
source ~/.bashrc
配置文件:
version: 2
jobs:
build:
branches:
only:
-dev
machine: true
working_directory: ~/repo
steps:
- checkout
- run:
name: install miniconda
command: |
cd /home/circleci
echo 'export MINICONDA=$HOME/miniconda' >> ~/.bashrc
echo 'export PATH="$MINICONDA/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
hash -r
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -f -p $MINICONDA
conda config --set always_yes yes
conda update conda
conda info -a
conda create -n testenv python=3.6.0
echo 'source activate testenv' >> ~/.bashrc
source ~/.bashrc
- run:
name: install requirements
command: |
source ~/.bashrc
cd /home/circleci/repo
# a requirement has install-time dependency on numpy
pip install numpy
pip install -r python-requirements.txt
pip install pytest-ordering
- run:
name: download sample dataset
command: |
cd /home/circleci/repo/unit_tests/test_data
wget http://cf.10xgenomics.com/samples/cell-exp/2.1.0/t_3k/t_3k_filtered_gene_bc_matrices.tar.gz
tar -zxvf t_3k_filtered_gene_bc_matrices.tar.gz
- run:
name: run tests
command: |
source ~/.bashrc
cd /home/circleci/repo
pytest ./unit_tests
- store_artifacts:
path: test-reports
destination: test-reports
[1]: https://circleci.com/docs/2.0/env-vars/#interpolating-environment-variables