Jenkins常用技巧及问题处理(1)
技巧1:合理使用内置变量
比如进入工作空间cd ${WORKSPACE}
还有备份时可以加构建序号${BUILD_NUMBER},当然也可以考虑加时间戳`date +%Y%m%d-%H%M`
技巧2:Shell脚本添加BUILD_ID=DONTKILLME防止衍生进程被杀掉
Jenkins中shell正常执行,但服务(多为tomcat/java进程)未能正常启动(Shell脚本本身是可以正常执行的),这是因为Jenkins会在构建完成后使用processTreeKiller杀掉了所有衍生进程,而且这是Jenkins的默认行为。Shell脚本添加BUILD_ID=DONTKILLME防止衍生进程被杀掉。
参考:
https://blog.csdn.net/syd505/article/details/102896800
https://www.cnblogs.com/wangjunjiehome/p/9212167.html
https://blog.csdn.net/liuxiaoming1109/article/details/89145949
https://blog.csdn.net/zhengxu189891/article/details/18710155
技巧3:流水线脚本里用到的credentialsId在凭据里找
credentialsId其实就是Gitlab等账号对应的ID,在配置pipeline时可能要用到。
问题1:使用Gradle-Wrapper构建时报java.io.IOException:error=13, Permission denied
这是没有勾选Make gradlew executable
因为gradlew命令默认是没有执行权限的
问题2:使用Gradle-Wrapper构建时报java.io.IOException:Server returned HTTP response code: 403 for URL: http://services.gradle.org/distributions/gradle-XX-bin.zip
具体需要修改代码目录下2个文件:
build.gradle、gradle/wrapper/gradle-wrapper.properties
里的distributionUrl中http为https,然后重新拉取代码进行构建。