Jenkins笔记

一、安装运行

1.brew 安装

$ brew install Jenkins

2.命令行启动Jenkins

$ jenkins

3.浏览器打开

http://localhost:8080/

4.获取密码 

$ sudo cat /Users/***/.jenkins/secrets/initialAdminPassword

5.安装推荐插件

安装推荐插件,可能会失败,大多是因为网络的问题,,多试几次就行了

6.创建用户

 

二、新建item

1.General 

discard old builds

 

  • 源码管理

Git

Repositories

Repository URL: https://gitlab.com/wenjie.wang/geeky.git

Credentials:(username and password)

 

  • 构建触发器

Build periodically

日程表

每行包括五个字段,以TAB或空格分隔

 

MINUTE HOUR DOM MONTH DOW

分 时 天 月 星期

MINUTE

Minutes within the hour (0–59)

HOUR

The hour of the day (0–23)

DOM

The day of the month (1–31)

MONTH

The month (1–12)

DOW

The day of the week (0–7) where 0 and 7 are Sunday.

 

每一个字段可以指定多个值,按照先后顺序

*所有值

M-N区间

M-N/X、*/X  分步 每X单位时间执行一次

A,B,...,Z 枚举

 

H 均匀负载 如:H H(0-7) * * * 每天12am到7:59am某个时间执行一次

以月为周期的短循环字段在月末时可能会有奇怪的行为

特殊符号:

@yearly, @annually, @monthly, @weekly, @daily, @midnight,@hourly

 

 

Gitlab push  

  1. gitlab 仓库添加webhook  

Gitlab 10.6版本后不允许向本地网络发送webhook请求,如果想向本地网络发送webhook请求,则需要管理员设置(https://blog.youkuaiyun.com/anqixiang/article/details/104968469

 

  • 构建环境

 

  • 构建步骤
  1. Xcode

Xcode以后插件很不友好,一直卡在最后API输出哪一步,,有兴趣的小伙伴可以参考这几篇博文

Jenkins自动打包代替Xcode的Archive

iOS:使用jenkins实现xcode自动打包(最新)

Jenkins + GitLab + Xcode + Fir 实现iOS自动打包和分发

最新的xcode插件有点差异,大致流程可做参考

 

2.脚本打包

 

#使用方法

#当前工程绝对路径
project_path=.
#生成的IPA文件存放路径
project_path_pre=${project_path}/IPAFiles
#project_path_pre=../${project_path} //当前工程上一级目录

#工程名 将****替换成自己的工程名
project_name=*****

#scheme名 将****替换成自己的sheme名
scheme_name=*****

#打包模式 Debug/Release
development_mode=Release

#plist文件所在路径
exportOptionsPlistPath=${project_path}/exportTest.plist

#编译过程中产生的临时文件夹,build文件夹路径(等打包成功之后删除掉)
tempBuild_path=${project_path_pre}/build

#build文件夹路径
build_path=${project_path_pre}/build

#导出.ipa文件所在路径
exportIpaPath=${project_path_pre}/IPADir/${development_mode}

echo '///-----------'
echo '/// 正在清理工程'
echo '///-----------'
xcodebuild \
clean -configuration ${development_mode} -quiet  || exit


echo '///--------'
echo '/// 清理完成'
echo '///--------'
echo ''

echo '///-----------'
echo '/// 正在编译工程:'${development_mode}
echo '///-----------'
xcodebuild \
archive -workspace ${project_path}/${project_name}.xcworkspace \
-scheme ${scheme_name} \
-configuration ${development_mode} \
-archivePath ${build_path}/${project_name}.xcarchive  -quiet  || exit

echo '///--------'
echo '/// 编译完成'
echo '///--------'
echo ''

echo '///----------'
echo '/// 开始ipa打包'
echo '///----------'
xcodebuild -exportArchive -archivePath ${build_path}/${project_name}.xcarchive \
-configuration ${development_mode} \
-exportPath ${exportIpaPath} \
-exportOptionsPlist ${exportOptionsPlistPath} \
-quiet || exit

if [ -e $exportIpaPath/$scheme_name.ipa ]; then
echo '///----------'
echo '/// ipa包已导出'
echo '///----------'
#open $exportIpaPath
rm -r $tempBuild_path
else
echo '///-------------'
echo '/// ipa包导出失败 '
echo '///-------------'
fi
echo '///------------'
echo '/// 打包ipa完成  '
echo '///-----------='
echo ''

exit 0

 

  1. 发布蒲公英

(1),Execute shell

https://www.pgyer.com/doc/view/jenkins_ios

#蒲公英上的User Key

uKey="41ed0a30a0cdf9296501232e69b5a66b"

#蒲公英上的API Key

apiKey="ece94057dd3d5bd3d570ae509a0c3e3d"

#要上传的ipa文件路径

IPA_PATH="${WORKSPACE}/build/PPCSDKTest.ipa"

#密码

PASSWORD="123456"

MSG=git log -1 --pretty=%B

#执行上传至蒲公英的命令

echo "++++++++++++++upload+++++++++++++"

curl -F "file=@${IPA_PATH}" -F "uKey=${uKey}" -F "_api_key=${apiKey}" -F "updateDescription=${MSG}" -F "password=${PASSWORD}" http://www.pgyer.com/apiv1/app/upload

 

(2)使用插件 upload to pgyer

文档:https://www.pgyer.com/doc/view/jenkins_plugin

 

  • 构建后操作
  1. 发布fir.im

上传插件fir-plugin,设置fir.im Token

 

  • 邮件通知相关人员 (微信企业邮箱)

1.系统管理--系统设置--Jenkins Location --系统管理员邮件地址 *********@g*****ic.cn  保存

2.Extended E-mail Notification

填写SMTP server:腾讯企业邮箱 smtp.exmail.qq.com

后缀:@geekymedic.cn

点选 Use SMTP Authentication   高级 填写用户名和密码

设置 Default Recipients 接收邮件人的邮箱, 空格隔开

Default Triggers 勾选 Always、Failure-Any、Success

3。邮件通知

SMTP服务器:腾讯企业邮箱 smtp.exmail.qq.com

后缀:@geekymedic.cn

点选 使用SMTP 认证

用户名:

密码:

使用SSL协议 勾选

SMTP端口:465

 

  1. 构建后操作:

Project From:管理者邮箱 发邮件人的邮箱 *********@*****.cn

 

  • 邮件通知相关人员 (163)

1.系统管理--系统设置--Jenkins Location --系统管理员邮件地址 ****@163.com  保存

2.Extended E-mail Notification

填写SMTP server:腾讯企业邮箱 smtp.163.com

后缀:@163.com

点选 Use SMTP Authentication   高级 填写用户名和密码

设置 Default Recipients 接收邮件人的邮箱, 空格隔开

Default Triggers 勾选 Always、Failure-Any、Success

3.邮件通知

SMTP服务器:腾讯企业邮箱 smtp.163.com

后缀:@163.com

点选 使用SMTP 认证

用户名:

密码:

 

  1. 构建后操作:

Project From:管理者邮箱 发邮件人的邮箱 ****@163.com

 

微信企业邮箱一直发不出邮件,,郁闷,查了好久才发现是因为password错了,

 

这里的advanced里面,需要勾选 use smtp authentication, password 是第三方的授权密码,不是注册的密码。

 

如果填了注册密码,就会报错:

 

MessagingException message: 535 Error: authentication failed

 

腾讯企业邮箱的第三方授权密码获取方式

 

邮箱设置--> 邮箱绑定 --> 微信设置 --> 客户端专用密码 -->生成新密码

———————————————

注意, 用户密码是发送方邮件地址的用户密码, 用户名必须和 系统管理员邮件地址一致

可以在 用户列表--》点击用户--》设置  中更改邮件地址

 

跳进去出不来的坑:用xcode插件打包 有哪位大神看到了,帮忙指点一二

2020-04-14 09:46:05.246 xcodebuild[98187:837771] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/l1/qt2gjjjn5752jrjt78qw1f1c0000gn/T/YJKApp_2020-04-14_09-46-05.244.xcdistributionlogs'.

error: exportArchive: The data couldn’t be read because it isn’t in the correct format.



Error Domain=NSCocoaErrorDomain Code=3840 "No value." UserInfo={NSDebugDescription=No value., NSFilePath=/var/folders/l1/qt2gjjjn5752jrjt78qw1f1c0000gn/T/ipatool-json-filepath-~~~mE1u9S}

 

使用Jenkins时随手记录下来的比较粗糙,各位看官尽请见谅

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值