前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3天学会Jenkins_11_gitlab or github代码提交后自动构建2

3天学会Jenkins_11_gitlab or github代码提交后自动构建2

作者头像
别打名名
发布2019-12-23 13:07:25
9480
发布2019-12-23 13:07:25
举报
文章被收录于专栏:小白AI.易名小白AI.易名

转载注明出处

上一节“gitlab or github代码提交后自动构建1”中简单使用了Pipeline script的方式去构建Pipeline流程,这一节使用Pipeline script from SCM的方式去实现自动构建,即将Jenkinsfile与源码一同进行版本管理。

1 准备

根据上一节“gitlab or github代码提交后自动构建1”中安装好Gitlab插件并配置好Webhook,最后我们在Gitlab项目仓库根目录中新建Jenkinsfile文件,这次演示Jenkinsfile文件主要做的功能就是编译和执行一个shell脚本。

同样的也是新建一个Pipeline项目,其他设置保持默认,需要配置的有:

  • Build Triggers
    • Build when a change is pushed to GitLab(保持与上一节一致,配置好Webhook)
  • Pipeline
    • ^(?!origin/master$|origin/develop$).* 【配置除了master和develop分支外所有分支】
    • */${gitlabSourceBranch} 【利用Gitlab插件环境变量,匹配所触发hook的提交分支】
    • 选择Pipeline script from SCM
    • SCM 选择Git
    • 配置好仓库地址和认证方式
    • Branches to build(这里需要注意配置,因为我们可以配置成编译多个分支处理或者单个分支)
    • Additional Behaviours 无需添加
    • Lightweight checkout 去掉勾选

⚠️这里出现一个很奇怪的问题,尽管Branches to build里配置了除master和develop分支外build所有分支,但是总是无法获取后面最新提交的代码,勾选或者不勾选Lightweight checkout也没啥用,最后还是依靠Gitlab插件的环境变量gitlabSourceBranch来解决的。

2 Jenkinsfile

Jenkinsfile放入项目根目录,然后另外新建auto_test.sh脚本文件。当提交代码到gitlab远程仓库时,会通过配置的hook自动触发Pipeline构建,执行Jenkensfile文件。

代码语言:javascript
复制
pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'bash auto_test.sh'
            }
        }
    }
}

auto_test.sh:

代码语言:javascript
复制
#!/bin/bash
test()
{
    echo "start to test"
    # do something...
}

test

自此就配置完成,在自动执行脚本里可以做你任何想要做的事情,后面进一步可以对Jenkinsfile进行编辑,包括测试、发布等。

3 参考

  • https://github.com/jenkinsci/gitlab-plugin#defined-variables
  • https://stackoverflow.com/questions/25774895/jenkins-git-plugin-not-pulling-latest-changes-before-building-job
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 别打名名 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 准备
  • 2 Jenkinsfile
  • 3 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档