ubuntu - circleCI 2.0 不添加环境变量

标签 ubuntu continuous-integration yaml circleci circleci-2.0

我最近从 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) 并尝试运行 pip install -r python-requirements.txt使用默认 python (2.7) 的命令。
我一定错过了一些东西,但我无法弄清楚。
我提供完整的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

最佳答案

最后,我使用 the docs 2.0 中的插值环境变量解决了这个问题。 .

脚步:

  • 将环境变量附加到 ~/.bashrcecho 'export MINICONDA=$HOME/miniconda' >> ~/.bashrc
  • 在要访问这些变量的规则中获取 ~/.bashrcsource ~/.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
    

    关于ubuntu - circleCI 2.0 不添加环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50374812/

    相关文章:

    Github 在运行操作时返回空字符串作为 secret

    amazon-ec2 - 用于 EC2 Image Builder 的 yaml 中的多行 bash 脚本

    scala - sudo apt-get install scala 上的 Ubuntu Duplicate sources.list 条目错误

    linux - CLOCK_MONOTONIC 与 CLOCK_MONOTONIC_RAW 有什么区别?

    c# - 如何在 git 存储库中保证 ASP.net 连接字符串密码的安全?

    c# - 基于 TFS 的自动化 CI UI 测试与桌面交互

    docker - traefik 2.2 反向代理 https 不显示我的容器

    windows - azure/webapps-deploy@v2 GitHub Action 不断失败并出现长路径错误,但我使用的是 Ubuntu

    linux - 在 Ubuntu 16.04 上无人值守安装 krb5-user

    tdd - 你如何在持续集成中处理 TDD?