目录

Jenkins笔记

1、homebrew安装的Jenkins无法通过IP访问

这是因为brewjenkins启动的监听地址设置为了127.0.0.1,改为0.0.0.0即可实现访问

jenkins配置所在路径:~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

/images/jenkins/jenkins_config_address.png
jenkins_config_address

2、jenkins脚本中无法使用podbrew等命令

需要在脚本开头添加 -l

1
2
3
4
5
#!/usr/bin/env sh -l

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

3、构建中生成的数据无法传递给构建阶段

解决:把数据写入文件,然后通过Jenkins中的FILE获取

写文件

1
2
3
4
5
6
7
8
# 创建下载地址日志文件
download_urls="${EXPORT_DIR}/DownLoadURLs.log"
if [[ ! -f ${download_urls} ]]; then
	touch ${download_urls}
fi
# 清空文件
echo "" > ${download_urls} 
echo "包名称:${application_name} <br/>" >> ${download_urls}

读文件

1
2
3
4
5
6
7
8
9
Jenkins打包结果:<br/><hr/>
 ${FILE, path="${PACKAGE_DIR}/${branch}/Package/DownLoadURLs.log"}  <br/><hr/>
项目名称:$PROJECT_NAME<br/><hr/>
构建编号:$BUILD_NUMBER<br/><hr/>
构建状态:$BUILD_STATUS<br/><hr/>
触发原因:${CAUSE}<br/><hr/>
构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console/</a><br/><hr/>
构建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>
变更集:${JELLY_SCRIPT,template="html"}<br/><hr/>

4、自动输入

比如自动输入 Y

1
2
3
4
5
# 输入一次
echo Y

# 输入任意次
yes Y

5、填充密码

使用echo-S 解决

1
echo "密码" | sudo -S gem install cocoapods

6、从构建日志中过滤日志

比如修改构建名称和构建描述

1
2
3
4
# 构建名称(编号 + 分支 + 当前登录用户)
${BUILD_NUMBER}_${branch##*/}_${BUILD_LOG_MULTILINE_REGEX,showTruncatedLines="false", maxMatches=1,regex="Started by user.*"}
# 从构建日志中提取描述
${BUILD_LOG_MULTILINE_REGEX,showTruncatedLines="false", regex="BID:.*|Version:.*|commitId:.*"}

获取登录用户名的另一种方式,需要打开Set jenkins user build variables

1
#${BUILD_NUMBER}_${PROJECT_BRANCH}_${BUILD_USER}

Jenkins插件推荐

插件镜像: http://mirror.esuni.jp/jenkins/updates/update-center.json

  • Blue Ocean
  • Pipeline
  • Priority Sorter Plugin
  • Extented Choice Parameter Plugin-In
  • Git Parameter Plug-In
  • List Git Branches Parameter
  • Environment Injector
  • Credentials Plugin
  • CocoaPods Jenkins Integration
  • Keychains and Provisioning Profiles Management
  • Xcode Integration
  • Safe Restart Plugin

Shell Tips:

  1. 执行出错时自动执行后面的命令(||): xcodebuild archive || echo "执行失败"

  2. 设置默认值:PROJECT_DIR=${project_path:-$WORKSPACE} #如果参数未设置取默认值

参考资料: