Mac上部署Jenkins和打包集成

早两天Mac mini打包服务器被猪队友一顿操作,结果重启后一直起不来了。一直卡在烂苹果界面,各种方式都试了,安全模式可以进,但是卡的不行,估计账号的文件被损坏。只能苦逼的重装系统了,在之前我认为只有Windows才有重装系统一说~。。。 是偶大意了,没有闪~

一、安装Jenkins依赖的java环境

安装Jenkins需要依赖java环境,终端输入以下命令:

java -version


java version "11.0.9" 2020-10-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.9+7-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.9+7-LTS, mixed mode)
mobileserver1@MobileServer1deMac-mini ~ % 

这一步无需太多,需要说明的是安装jdk 11,后面会讲。最开始是安装的jdk 8,jenkins起不来。

从官网下载需要的JDK版本
http://www.oracle.com/technetwork/java/javase/downloads/

二、通过HomeBrew安装Jenkins

1、首先检查下是否已经安装HomeBrew
image.png

有版本号就说明安装了,如果没有就得安装。
我是用的官网命令安装的:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Homebrew的安装参考:Homebrew工具使用

2、然后通过HomeBrew安装Jenkins
brew install jenkins
...
...
==> Pouring jenkins--2.364.all.bottle.tar.gz
==> Caveats
Note: When using launchctl the port will be 8080.

To restart jenkins after an upgrade:
  brew services restart jenkins
Or, if you don't want/need a background service you can just run:
  /usr/local/opt/jenkins/bin/jenkins --httpListenAddress=127.0.0.1 --httpPort=8080
==> Summary
🍺  /usr/local/Cellar/jenkins/2.410: 8 files, 92.4MB
==> Running `brew cleanup jenkins`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

出现以上信息说明Jenkins安装好了。

3、Jenkins相关命令
1、Jenkins启动命令:
brew services start jenkins

2、Jenkins重启命令:
brew services restart jenkins

3、Jenkins停止命令:
brew services stop jenkins

输入启动命令后,出现以下信息代表已经启动了。

Successfully started `jenkins` (label: homebrew.mxcl.jenkins)

三、通过浏览器打开和配置Jenkins

1、安装好后,通过浏览器打开Jenkins

Jenkins启动之后,在浏览器输入http://localhost:8080地址来打开Jenkins或者是服务器的话可以http://ip:8080来打开。

1.2、如果说正常启动就直接打开了。而我是不走运,打不开。服务器拒绝访问了。

Mac下安装jenkins以及报错解决办法

    1. 这时,我们需要检查jdk是否是11版本,若不是请安装jdk 11版本。
    1. 然后,我们需要去Jenkins官网下载jenkins.war包。如图所示:
      下载该文件
    1. 最后,通过终端输入java -jar jenkins.war命令。
server@ServerdeMac-mini ~ %  java -jar jenkins.war

通过以上三个步骤,我终于可以通过浏览器打开Jenkins了。

2、输入Jenkins管理员密码

最开始浏览器打开jenkins,会出现下图:


image.png

图片上的红色路径表示jenkins的管理员密码所在文件,我们可以复制下来,通过open命令打开,复制密码填入输入框中。

open /Users/****/.jenkins/secrets/initialAdminPasswords
3、配置安装Jenkins插件
image.png

可以选择点击上图中第一个安装建议的插件,需要比较长的时间来等待安装完成。


image.png

有时候会出现安装失败的情况,可以重试重新安装。

4、创建管理员账户

插件安装完后会进入到创建管理员用户的界面:


创建管理员账

然后Jenkins 就安装完成了,如下


Jenkins安装完成
5、Jenkins配置开机启动

默认情况下,Jenkins如果第一次安装好,直接可以浏览器可以打开的话。就不需要配置啥,因为Jenkins本身是后台启动项,会被添加到登录项中。开机直接就运行了。
Mac: 设置 -> 通用 -> 登录项


但是我们遇到了打不开的情况,我们是下载了jenkins.war,然后通过java -jar jenkins.war命令启动。但是如果重启了,我们每次都要输入这个命令启动Jenkins吗?No~ 不需要

    1. 这时候我们可以新建一个pubJenkins.sh文件,然后在文件中加入下面命令:
#! /bin/sh
java -jar */*/jenkins.war  (jenkins.war放置的位置)
    1. 这一点值得注意,我们这个pubJenkins.sh文件需要配置通过终端打开。这一点很重要!!!


    1. 在设置 -> 通用 -> 登录项中加入


四、Jenkins配置打包项

这里主要讲讲我们配置的Jenkins打包任务和遇到的问题。(这里以Flutter项目打包配置举例)

4.1 配置打包分发任务
    1. Dashboard -> New Item -> FreeStyle project,这里就可以创建一个新的打包项目。
    1. Git配置:通过Git这里需要配置有是三个地方:1. 项目Git地址;2. Git的账户配置[添加账号一般是Git的账户名和password为access token(可能并不是你的git登录密码)];3. 选择Git项目的分支;


    1. Build Step:Build Step顾名思义就是编译步骤,对于Flutter而言,我们使用Execute Shell就行了。


      选择Execute Shell

      然后,在输入框中填入Flutter打包命令就行了。


      Android命令

      iOS命令
    1. 最后一步(publish):打包完成后那就得上传了,像我们的话使用蒲公英来进行分发。所以先得安装一个插件:Upload to pgyer。然后,在Post-build Actions这项中选择Upload to pgyer with apiV2
      Post-build Actions -> Upload to pgyer with apiV2

      最后,在配置蒲公英的APIKey,和上传文件的路径和类型就可以了。
      Android
iOS

这样,一个项目的打包和分发的配置就完成了,这时候就可以Build玩一玩了。

4.2 点睛之笔 - 编译条件
 一个项目的运行包括打包和分发,比如说如果你打包成功了。只是分发的时候失败了。那整个项目就失败了。如果重新打包又浪费时间,这时候你可能需要编译跳过打包阶段,直接进入上传阶段。
    1. 首先在项目配置中添加Build Parameter:


      添加Build Parameter
    1. 安装插件:Conditional BuildStep。然后在Build Step中选择Conditional step(single),然后配置相关条件,勾了SKIP_BUILD就不执行编译打包步骤了。


      image.png
    1. Build时自由选择,勾SKIP_BUILD就是跳过编译,直接上传,不勾的话就是全量打包


      image.png
4.3 修改Jenkins WorkSpace路径
    1. 在Mac下,要修改workspace路径可以在Jenkins安装目录:一般是隐藏文件夹(shift+command+. 开启或者关闭)。/Users/用户名/.jenkins/config.xml


      config.xml
    1. 在config.xml文件中,找到workspaceDir这个标签,并修改workspace的目录路径。


      修改workspace路径
4.4 Jenkins打包Flutter iOS项目时的错误
    1. 出现"Cannot find "xcodebuild". Xcode 12.3 or greater is required to develop for iOS."错误;
终端输入命令:
sudo xcode-select--switch/Applications/Xcode.app/Contents/Developer
    1. Xcode 14.3编译iOS,出现“ld: file not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a”
      这里找不到这个文件,确实我进入Xcode目录看确实没有这个文件了,官方解释是:“因为新系统已经内置了ARC的相关库,所以就没必要额外链接了”。可是这里如何解决呢?
      找一个Xcode 13的版本,找到这个文件夹。然后把这个arc文件夹整个复制到xcode 14版本的对应目录下,重启就可以了。


      image.png
4.5 Jenkins的杂七杂八
    1. 配置用户权限:我记得以前用插件:Role-based Authorization Strategy可以配置用户权限的,这次可能Jenkins版本高了,我安装插件后,怎么也找不到用户权限配置的入口。
      后来发现,在Manage Jenkins -> Security -> Authorization(选择Matrix-based security)就可以配置用户的权限了。


      配置用户权限
    1. Jenkins的乱七八糟
      退出Jenkins:http://localhost:8080/exit
      重启Jenkins:http://localhost:8080/restart
      重新加载Jenkins配置: http://localhost:8080/reload

参考文章:https://www.jianshu.com/p/b8a3b9992cd0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容