小编cwh*_*cwh的帖子

Jenkins 中使用 virtualenv 的每个作业环境

我正在尝试virtualenv以编程方式管理 Jenkins 服务器上每个作业的 Python 环境,通过共享库扩展实现,以根据每个作业激活环境。例如:

/vars/activateEnvironment.groovy:

def call(String env = "/usr/local/etc/environments/jenkins-$JOB_NAME") {

    sh """
    mkdir ${env}
    virtualenv ${env}
    source ${env}/bin/activate
    """
}
Run Code Online (Sandbox Code Playgroud)

管道脚本,其中virtualenv-scripts存储库包含上述文件:

@Library('virtualenv-scripts') _

pipeline {
    agent any
    stages {
        stage("Test") {
            steps {
                activateEnvironment()
                sh 'which pip'
                sh 'echo \$PATH'
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

运行此管道脚本,我得到以下输出:

[Pipeline] sh
[example-pipeline] Running shell script
+ echo /sbin:/usr/sbin:/bin:/usr/bin
/sbin:/usr/sbin:/bin:/usr/bin
[Pipeline] sh
[example-pipeline] Running shell script
+ which pip
/bin/pip
Run Code Online (Sandbox Code Playgroud)

我尝试使用此答案使 Jenkins 使用登录 shell,但这仍然会在每次 …

python bash virtualenv jenkins

3
推荐指数
1
解决办法
4901
查看次数

标签 统计

bash ×1

jenkins ×1

python ×1

virtualenv ×1