隐藏Jenkinsfile敏感信息

隐藏Jenkinsfile敏感信息

简介

官网资料:指令environment。

https://www.jenkins.io/zh/doc/book/pipeline/syntax/#environment

不过官网只给了简单解释。下面做一些总结:

parameterl类似,定义在最外层则作用全局,定义在stage内则作用在stage里。它是一个键值对key=value形式定义。

我们关注的是它额外的凭证函数credentials(),可以获取Jenkins配置的凭证信息。

注意:凭证函数传递的参数是“唯一标识”,不是“名称”。如果拿名称做为参数,控制台只会报步骤失败,但不会打印任何可供定位的日志。

语法

environment { 
	USER = credentials('2d374262-9f96-4e21-af4d-c200aea61b96') 
}

对于text类型的凭证,密码直接会赋予变量;对于userName:passwd类型凭证,除了会以username:password赋值给变量外,还会自动添加_USR_PSW后缀的变量。

所有凭证的变量,在控制台中都是*

Jenkins全局添加凭证

【系统管理】->【Manage Credentials】->【Stores scoped to Jenkins】点击“全局”。

左侧导航会有“添加凭据”按钮。

Id可以自己命名,也可以不填由系统分配。

一个完整案例的Jenkinsfile

pipeline {
    agent any
    stages {
        stage("stage: get dingding webhook") {
            environment {
                DINGDING_WEBHOOK = credentials('dingding_webhook')
                USER = credentials('1954521e-04c3-485e-b0aa-69b57702d3b9')
            }
            steps {
                sh 'env'
                sh 'echo dingding webhook'
                sh """curl '${DINGDING_WEBHOOK}'  -H 'Content-Type: application/json' -d '{"at":{"atMobiles":[153***]}, "msgtype":"actionCard","actionCard":{"title":"Jenkins Credentials.", "text":"## Credentials Secret \n\n ![](http://47.119.XX.XX/src/assets//img/girls/18.jpg) \n\n **Build ID**: ${BUILD_ID} \n\n @153***","btns":[{"title":"Yes","actionURL":"${BUILD_URL}"}]}}'"""
            }
        }
    }
    post {
        always {
            echo 'This will always run'
        }
        success {
            echo 'successful'
        }
        failure {
            echo 'failed'
        }
    }
}

posted @ 2021-12-28 18:06  乐小天  阅读(290)  评论(0编辑  收藏  举报