美文网首页
Mac上部署Jenkins和打包集成

Mac上部署Jenkins和打包集成

作者: 天上飘的是浮云 | 来源:发表于2023-06-20 16:57 被阅读0次

早两天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

相关文章

网友评论

      本文标题:Mac上部署Jenkins和打包集成

      本文链接:https://www.haomeiwen.com/subject/gameydtx.html