
转载注明出处,欢迎关注微信小程序
1 准备
Publish over ssh插件Manage Jenkins->Configure System->Publish over SSH配置SSH。Test Configuration可以测试是否可以连接远端服务器成功
当Gitlab提交了Tag时,触发自动编译、打包和自动远程部署
通过在指定Gitlab项目上添加Jenkins的webhook,然后配置提交Tag时触发钩子。从而,Jenkins执行Jenkinsfile实现自动编译、打包和自动远程部署。
Pipeline项目Build Triggers -> 勾选Build when a change is pushed to GitLab. GitLab webhook URL:......Advanced,点击Generate会生成Secret token,用于Gitlab hook配置用,当然可以不用这一步,那Gitlab上也不用配置了。
Pipeline script from SCMGit,然后正确填写远程仓库地址和拉取代码方式Branch Specifier : ${gitlabSourceBranch} (所有分支)Script Path可以设置指定的Jenkinfile文件名,默认为项目根目录Jenkinsfile
Settings -> Integrations配置Jenkins webhook
注意:如果Jnekins主机IP发生改变,没有重启的话,那么钩子的IP地址还是旧地址,导致Gitlab无法发出钩子事件(Hook execution failed: execution expired) 添加webhook的话是需要有Gitlab项目master权限的,否则你也看不到Settings这个菜单选项。
上面的一系列操作,我们已经将Jenkins和Gitlab通过webhook连接起来了,接下来只需要实现Jenkinfile文件的执行内容,即实现编译、打包及远程发布功能。其实就是写脚本。
部署形式可分为两种:
expect命令,包括输入用户密码和通过跳转机登录到远端服务器上之类的操作。