通过Powershell脚本更改Conda环境(适用于Gitlab-CI)

时间:2019-07-01 07:25:25

标签: powershell conda gitlab-ci

我正在Windows 10机器上使用GitLab-CI运行一些自动化的Python测试。使用简单的Windows Shell,机器上的GitLab-Runner用于executor = "shell"。这最近停止工作了(文档说不再支持此shell),唯一使它再次工作的方法是使用powershell,而不是在shell = "powershell"文件中添加config.toml。为了运行测试,我们需要激活一个conda环境。不幸的是,这似乎无法通过GitLab-CI为此作业创建的powershell脚本来工作。

当我打开以执行gitlabRunner作业的用户身份手动登录的Powershell时,可以更改conda环境。我已经运行conda init powershell,可以使用conda activate myenv更改环境。但是,当我在gitlab-ci.yml文件中添加以下内容时:

script:
  - conda activate myenv
  - conda list

conda list的输出确认未激活环境myenv,而是使用了基本环境。

也尝试这样的绝对路径

script:
  - conda activate C:\Users\myuser\Miniconda3\envs\myenv
  - conda list

不起作用。

因此,似乎可以在Powershell中手动激活正确的conda环境,但是无法通过GitLab-CI创建的powershell脚本激活环境。有解决此问题的方法吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

就像gitlab在单独的子shell中执行脚本的每一行。将命令组合成一行。

如果这不起作用,大多数conda命令将接受环境名称作为参数-n

conda list -n myenv
conda install -n myenv PackageName
...

只要您仅使用conda,就不必激活环境。

答案 1 :(得分:0)

由于它似乎是 powershell 中的一个问题,但 cmd 没有问题,因此可以在 gitlab-ci yaml 中使用以下内容:

- cmd '/C' 'conda activate myenv && python myunittests.py'