iOS开发

mac下Jenkins + Git 自动化打包并生成二维码

2019-03-26  本文已影响0人  追风车的面瘫
result.png

以上就是本篇文章要记录的jerkins自动打包并生成二维码的效果截图!

1.安装jenkins(命令行)

brew install Jenkins
如果提示jenkins: Java 1.8 is required to install this formula.
则还需要配置Java环境
brew tap caskroom/versions
brew cask install java8(brew cask install java则表示最新版本)
安装成功后输入命令行
jenkins (启动)

2.在浏览器输入localhost:8080

3.安装插件

Git
Gradle
这些肯定是必须的,还有一些辅助的可以安装

Jenkins插件.png

上图是我安装过程中用到的,如果缺少什么会有提示,按照提示安装就好,一种是在插件管理里面直接安装,还有一种方式是Jenkins插件下载地址下完了本地上传,看网络情况。

因为其他设置或配置都依赖插件才能显示,所以插件安装放在首位。

4.系统设置

Jenkins首页系统管理下有个系统设置,主要需要设置一下环境变量,以及Jenkins URL,如下


系统设置.png

5.全局安全设置

全局安全设置.png

我只改了这一处,主要是为了生成二维码能够显示出来,会用到

6.全局工具配置

主要需要设置git和gradle


全局工具_git_set.jpg

git目录选择自己电脑下git的目录

全局工具设置_gradle.png

gradle选好自己的版本就好

7.项目构建配置

配置完成全局的相关设定后,接下来就是针对项目的了
首先是新建一个job或者new 任务,Jenkins首页左上角第一个菜单项就是,根据需要选择不同的风格,我选的是构建一个自由风格的软件项目
,然后就进入的项目配置的页面了。

git配置如下
git.png
gradle配置如下
gradle.png
add build step 执行shell
shell.png

截图为mac上的方法,Windows可以选执行Windows批处理命令
用python在本地生成二维码,qrcode.py代码如下

import os, sys, ssl
import urllib
workspace = sys.argv[1] #jobs/project/workspace/
buildDir = sys.argv[2] # app/build/outputs/apk/
urlPrefix = sys.argv[3] # http://192.168.1.1:8080/job/project/35/

fileNames = []

absoluteBuildPath = workspace + buildDir
print absoluteBuildPath

for fileName in os.listdir(absoluteBuildPath):
  tmpPath = os.path.join(absoluteBuildPath, fileName)
  if os.path.isfile(tmpPath) and fileName.endswith(".apk"):
        fileNames.append(fileName)

for index, fileName in enumerate(fileNames):
    downloadUrl = urlPrefix + 'artifact/' + buildDir + fileName

apiUrl = "https://api.qrserver.com/v1/create-qr-code/?  size=150x150&data=" + downloadUrl

print apiUrl

savePath = workspace + 'qrcode/qrcode' + str(index) + '.png'

if not os.path.exists(os.path.dirname(savePath)):
    os.makedirs(os.path.dirname(savePath))

urllib.urlretrieve(apiUrl, savePath)

以上仅供参考,可以自行定义

Post-build Actions(展示apk链接和二维码)
post_build.png

以上配置完成后,保存,然后点立即构建就可以得到文章开始展示的二维码了。

中间确实碰到了很多坑,所以从最开始的截图可以看到,我是在第33次构建后才成功的,所以也是记录下,方便以后自己能快速集成!当然还有一些功能未完待续,比如参数化构建,设置名字之类的,后续补充。

上一篇下一篇

猜你喜欢

热点阅读