jenkins文件夹
1. Jenkins Gitlab 前端构建发布
流程:通常是从gitlab/github拉取项目,构建,把产出文件发到服务器。
一、环境
创建任务之前,要先配置两项:
问题1:jenkins credentials配置SSH
系统管理 -> Manage Credentials -> 全局凭据 (unrestricted) ->添加或者编辑
注意:这里的key是个大坑,最开始我纠结是填私钥还是公钥,发现粘贴进去都不对。(粘贴私钥时我粘贴的是正文,没有复制首尾两行,导致一直报错。)最后把私钥整个粘贴进去就对了。
原因:
由于Jenkins的安全策略配置了CSRF跨站点保护。
解决方案:
进入Jenkins,系统管理-->全局安全配置,勾选匿名用户具有可读权限和去掉CSRF防止跨站点请求伪造:
在 /configure 下
这个插件是jenkins连接linux系统的时候使用。
以下针对插件的每个属性进行说明。
Name
SSH Server的Name属性就是你希望连接的服务器。
Source files
这里输入的是你希望传到服务器的文件夹和文件。路劲是相对jenkins的workspace的项目名称的。例如编译打包后的路径为dist文件夹下的jenkinszip.tar.gz,则Surce files填入dist/jenkinszip.tar.gz。
Remove prefix
如果Source files为dist/jenkinszip.tar.gz,但是不想把dist目录创建到服务器端,这个时候就可以在Remove prefix里填入dist
Remote directory
这里指定文件将被拷贝到服务器的路径。
PS:被拷贝文件在服务器上的完整路径=登录服务器账号的默认路径(就是全局设置的Remote Directory)+当前任务配置的Remote directory。
例如我的服务器路径是 /home/wwwroot/aaa
我全局配置Remote Directory 是 /home/wwwroot
当前任务配置的Remote Directory 是 /aaa/
Exec command
这里就是连接服务器之后需要执行的命令。
注意:这里配置的Secret token和 webhook要填写到gitlab里面,路径如下:
参考文章: https://blog.csdn.net/hou_ge/article/details/103507947
2. Jenkins源码管理,关于Local mole directory
近期在配置Jenkins+maven+svn自动打包任务时,遇到一个项目,打包时需要依赖文件夹的目录结构,如果直接从svn检出打包,打出来的包会缺失文件。这时才注意到了关于Local mole directory的设置。
Local mole directory默认情况下是一个点,表示就在工作目录下面直接检出;
首先再jenkins上创建一个secdev的任务,项目直接检出到工作目录下
该secdev任务构建完成后,在jenkins的workspace下就会生成一个secdev的目录。
接着配置我们真正需要打包的项目jdgl,将项目检出到secdev目录下,这样就解决了jdgl项目打包需要依赖secdev的情况了。