美文网首页
jenkins 流水线拉取git代码

jenkins 流水线拉取git代码

作者: 清水秋香 | 来源:发表于2020-05-01 20:16 被阅读0次

    凭据(credentials)是什么

    凭据(credentials)是访问其他系统的认证信息,可以是账号/密码、SSH密钥、加密文件等,Jenkins可以通过设置的凭据与其它第三方应用进行认证,在可信与可控的范围内,完成第三方交互。

    Jenkins可以存储以下类型的credentials:

    • Secret text - API token之类的token (如GitHub个人访问token),
    • Username and password - 可以为独立的字段,也可以为冒号分隔的字符串:username:password
    • Secret file - 保存在文件中的加密内容
    • SSH Username with private key - SSH 公钥/私钥对,
    • Certificate - a PKCS#12 证书文件 和可选密码
    • Docker Host Certificate Authentication - Docker 仓库认证信息

    为什么添加凭据

    为了最大限度地提高安全性,在Jenins中配置的 credentials 以加密形式存储在Jenkins 主节点上(用Jenkins ID加密),并且只能通过 credentials ID在Pipeline项目中获取

    这最大限度地减少了向Jenkins用户公开credentials真实内容的可能性,并且阻止了将credentials复制到另一台Jenkins实例

    企业的代码一般会存在自己公司的版本控制私服,一般都会输入账号密码,在脚本中直接暴露账号密码是非安全的

    如何添加凭据

    添加凭据在Jenkins中只能添加全局凭据

    • 首先需要确保当前的登录的用户拥有创建凭据权限的能力

    能看到以下的凭据,可以点,基本上是会有权限的,不排除使用更精细的权限控制只读的情况

    image

    一般而言,管理员用户拥有此权限

    • 点击凭据->系统->全局凭据
    image
    • 点击左上角添加凭据,添加用户名与密码,确定,完成创建凭据

      类型(kind)参考上小节中类型的介绍,这里以Username with password演示

      注意:描述不要写!描述不要写!描述不要写!这是Jenkins的bug,第一次创建时如果写描述会卡住,无法登录!ID会自动生成,不要管

    image

    确定,如下图所示添加凭据成功

    image

    使用保存在版本控制的Jenkinsfile

    这里使用Github上的代码进行演示,虽然没有使用私服或私有仓库,只为演示效果

    为了演示下Jenkinsfile放在Git上是如何使用的,这里新创建了一个Git的仓库用来保存以后的Jenkinsfile内容

    https://github.com/hellxz/JenkinsfileTutorials

    创建个新的流水线工程

    image

    工程描述可以不写,这里就不表述了,这里直接说说如何使用版本控制中的流水线脚本

    image

    使用流水线语法生成器

    checkout scm 表示每次提交代码,会从git上拉取代码到jenkins的工作目录下

    node() {
        stage('构建') {
            //  注释
            checkout scm
            echo 'build'
        }
        stage('测试') {
            // 注释
            echo 'test'
            //sh 'echo case001 >> suite.txt'
            sh label: '', script: 'robot -P . -t tc005081 tc'
        }
        stage('部署') {
            // 注释
            echo 'deploy'
        }
        stage('验收') {
            // 注释
            echo 'deploy'
            emailext attachmentsPattern: '*.html', body: 'test', replyTo: 'wgz18516820311@163.com', subject: 'test', to: '1272235678@qq.com'
        }
    }
    

    流水线语法使用示意

    image

    最后我们把生成好的代码,整合到我们的Jenkinsfile中,提交到Git仓库中

    启动构建工程

    回到Classic UI -> Build Now 开始构建

    相关文章

      网友评论

          本文标题:jenkins 流水线拉取git代码

          本文链接:https://www.haomeiwen.com/subject/kpxcghtx.html