codecamp

Jenkins 使用环境变量

Jenkins 环境变量可以全局设置,如下面的示例或每个阶段。您可能会期望,每个阶段设置环境变量意味着它们将仅适用于定义它们的阶段。

Jenkinsfile (Declarative Pipeline)
pipeline {
    agent any

    environment {
        DISABLE_AUTH = 'true'
        DB_ENGINE    = 'sqlite'
    }

    stages {
        stage('Build') {
            steps {
                sh 'printenv'
            }
        }
    }
}

Toggle Scripted Pipeline (Advanced)

Jenkinsfile (Scripted Pipeline)
node {
    withEnv(['DISABLE_AUTH=true',
             'DB_ENGINE=sqlite']) {
        stage('Build') {
            sh 'printenv'
        }
    }
}

这种从内部定义环境变量的方法Jenkinsfile 对于指示脚本(例如a)可以非常有用Makefile,以不同的方式配置构建或测试,以在Jenkins内部运行它们。

环境变量的另一个常见用途是在构建或测试脚本中设置或覆盖“虚拟”凭据。因为(显而易见)将凭据直接放入一个不好的主意Jenkinsfile,Jenkins Pipeline允许用户快速而安全地访问预定义的凭据,而Jenkinsfile无需知道其价值。

环境证书

如果您的Jenkins环境配置了凭据,例如构建秘密或API令​​牌,那么可以将它们轻松插入环境变量中,以便在Pipeline中使用。下面的代码片段用于“秘密文本”类型的凭据。

environment {
    AWS_ACCESS_KEY_ID     = credentials('AWS_ACCESS_KEY_ID')
    AWS_SECRET_ACCESS_KEY = credentials('AWS_SECRET_ACCESS_KEY')
}

正如第一个例子,这些变量将在全局或每个阶段可用,具体取决于environment指令 在哪里Jenkinsfile。

第二种最常见的凭证类型是“用户名和密码”,仍然可以在environment指令中使用,但会导致稍微不同的变量被设置。

environment {
   SAUCE_ACCESS = credentials('sauce-lab-dev')
}

这将实际设置3个环境变量:

SAUCE_ACCESS 含 <username>:<password>
SAUCE_ACCESS_USR 包含用户名
SAUCE_ACCESS_PSW 包含密码
credentials仅适用于声明性Pipeline。对于使用脚本Pipeline的用户,请参阅该withCredentials步骤的文档。

到目前为止,我们关心的是创建一个配置并执行我们期望的方式的Pipeline。在接下来的两个部分中,我们将介绍连续交付的另一个重要方面:表面反馈和信息。


Jenkins 定义执行环境
Jenkins 记录测试结果和工件
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Jenkins 使用

Jenkins使用案例

Pipeline操作

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }