flutter项目使用jenkins自动部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flutter项目使用jenkins自动部署相关的知识,希望对你有一定的参考价值。

参考技术A 操作系统:macOS Big Sur
前置需求:

ok,开始搞jenkins

1、使用homebrew安装jenkins

Terminal运行命令brew install Jenkins

2、运行jenkins

Terminal运行命令jenkins,最终出现 Jenkins is fully up and running代表运行成功

3、初始化jenkins

在浏览器地址栏输入 http://localhost:8080/
然后首次安装启动就会出现新手引导,根据引导操作
自定义jenkins那里选择安装推荐的插件
PS:这里我很多插件都安装失败了,这个没关系,可以进去再自己安装或者不再安装貌似也没啥影响,继续向下操作即可
最后的实例配置那,默认即可,也可以设置一个地址
PS:如果要设置的话,就是自己的电脑ip地址+8080端口就行,配置完之后系统管理里报了一个反向代理设置有误,目前没发现这个报错有什么不好的影响,这个地址也可以以后在jenkins系统管理-系统配置里改的,这个主要是用来让别的同事来访问时要用的,自己用的话就不用设置,额外说一个,如果同事电脑挂了vpn,大概率是访问不了你设置的这个地址的,退掉vpn即可

4、安装插件

进来第一步就是安装插件了,这里要用到哪些我也是根据别人的博客找的,但是由于我主要是用shell命令,所以好像很多都没用上,但是安装了也不亏。。。
gitLab Plugin、gitLab Hook Plugin、Xcode integration、keychains and provisioning profiles Management,DingTalk等
PS:说下这个Upload Keychain or Provisioning Profile File插件,这个是用来管理ios证书和配置文件的,但是吐血的是,无论如何都传不上去,搞到头秃,最后没办法,放弃治疗,好在还有别的办法,往下看
然后DingTalk这个是在构建成功后自动通知到钉钉群的插件,我这边用到了,下面也有介绍

5、iOS相关设置

系统管理-Manage Credentials

点击 Stores scoped to Jenkins下面的域-全局,然后就可以添加全局凭据了,这里要添加的是:

Upload Keychain or Provisioning Profile File插件用不了,配置文件在这里添加也是一样的

6、android相关设置

系统管理-系统配置-全局属性-环境变量
Android SDK设置

系统管理-全局工具配置
JDK设置

Gradle设置

7、钉钉插件通知配置

在钉钉群的设置-智能群助手-添加自定义机器人
要复制一下webhook链接,下面要用,还有关键字设置,要钉钉和jenkins一致

在jenkins系统管理-系统配置中,设置钉钉,点击测试如果群聊能收到通知就可以

8、新建任务

这里是Android和iOS各建一个,选择freestyle即可,两边别的都一样,就是shell命令不一样,下面会贴
点开新建的任务,点击配置

①描述和钉钉

②git信息

git这里是自己项目的git地址和之前全局配置的git账号密码,也可以再这里添加新的账号密码

③构建触发器和构建环境都不用选

④构建
选择执行shell,然后填写shell命令(iOS和Android我都贴上了,可以自己参考和修改)
里面的一些关键密码和文件名等,我改成了文字描述或者***,都填自己的
此shell支持的一些功能:清空指定文件夹,替换指定文件,替换指定文件的指定内容,导出安装包,上传蒲公英,安装包重命名(version+build+时间),安装包上传svn

Android apk打包shell

⑤构建后操作也不用做,保存

9、点击立即构建
如果构建失败可以点击当次构建,然后点击查看控制台输出,查看具体报错进行修改,一般来说只要androidStudio和xcode能够编译成功的话,这边问题都不大,一般都是一些小问题要改,如果构建成功,就会通知到钉钉群了

以上是关于flutter项目使用jenkins自动部署的主要内容,如果未能解决你的问题,请参考以下文章

jenkins实现项目自动部署

Jenkins+Rancher自动化部署

Jenkins使用Jenkins编译打包后自动部署项目

jenkins(三)部署后台服务

学会使用Jenkins自动部署你的项目(实战)

Jenkins和Gitee自动化部署SpringBoot项目