iOS自动化-Jenkins环境搭建

介绍

Jenkins
Build great things at any scale
The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.

官网所说Build great things at any scale

从这篇文章中你将会实现:

  • 在Mac上多种方案安装并启动jenkins
  • 在局域网中正常访问jenkins

安装

当然你首先需要一个macOS的系统,为后来的构建做基础。

Jenkins中可以使用pkgwar的方式运行,当然还有在Installing Jenkins中提供一些安装方式:

macOS
To install from the website, using a package:

  • Download the latest package
  • Open the package and follow the instructions

Jenkins can also be installed using brew:

  • Install the latest release version
    1
    brew install jenkins
  • Install the LTS version
    1
    brew install jenkins-lts

这里使用brew,因为很方便

1
2
3
4
5
6
7
8
# 安装
$ brew update && brew install jenkins

# 更新
$ brew update & brew upgrade jenkins

# 后台运行 还支持`stop`、`restart`等 (这种方式还是有差别的,下面会说明)
$ brew services start jenkins

运行

建议先来看一波--help

1
$ jenkins --help

方案一

直接运行jenkins命令,可以看到日志输出,但是不能退出命令。

1
$ jenkins

经过漫长的初始化,会将

  • ~/.jenkins目录作为JENKINS_HOME
  • localhost:8080作为默认URL

终端输出Started initialization一行之后就可以正常打开了。

在浏览器打开http://10.12.12.10:8080就可以正常加载啦~

退出运行:control + C 组合键。

方案二

直接open,看不到日志输出,所对应的运行环境和方案一相同。

1
$ open /usr/local/opt/jenkins/libexec/jenkins.war

命令结束,稍等片刻(初始化相关目录、环境),在浏览器打开http://10.12.12.10:8080就可以正常加载啦~

方案三

使用brew直接挂在后台作为服务运行起来

1
$ sudo brew services start jenkins

brew还提供其他的参数,比如说restartliststop 等等。

此方案和上面的运行环境是不一样的,会有些权限的差别。

其他方案

使用launchctlnohup 等其他方案进行的后台运行,同方案三差不多。

需要说的是launchctl是macOS下系统提供的后台运行方案,brew等,均来自于此。

launchctl后台中需要一个plist,但是brew已经做好了,放置在~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist。需要说的是launchctl是macOS下系统提供的后台运行方案,brew等,均来自于此,具体的配置参数都和launchctl一样的,搜索一下很多。brew为我们已经准备好了一个,直接使用方案三就行。

具体操作可以Google一下,很多的~

安装完成后的配置

在Jenkins初始化完毕为了验证管理员身份,需要将Jenkins机器上的一个字符串输入到http://10.12.12.10:8080中进行验证,具体文件目录在输入的界面就能看到,不要大惊小怪。

之后开始选择安装插件。这里可以选择推荐的~~,也可以自己勾选。为了方便,这里直接选择推荐的方案进行安装。

经过漫长的等待,终于将插件安装完毕,并启动了起来~~

Jenkins权限,嗯,这个很重要,可以去系统管理 -> Configure Global Security 中进行设置。

接下来开始去配置工程吧!传送门:iOS自动化-Jenkins编译工程

可能会碰到的错误

Error: Permission denied - ***

1
2
$ brew services start jenkins
Error: Permission denied - ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

这种很明显Permission denied,在命令行前添加sudo,然后输入密码即可。如下:

1
$ sudo brew services start jenkins

方案二后的地址哪里来的?

这里推荐的安装方案是brew install jenkins

通过下面的方式找到brew安装的位置

1
2
3
4
5
6
7
8
9
10
11
$ brew services list
Name Status User Plist
beanstalkd stopped
influxdb stopped
jenkins started keith ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
nginx stopped
sonarqube stopped
FDDdeiMac:~ FDD$ cat ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
...
<string>/usr/local/opt/jenkins/libexec/jenkins.war</string>
...

给Jenkins绑定一个IP

讲道理这个不应该在这里聊的😂,不过还是说一下吧。。

一般局域网中都是直接自动获取IP信息的也就是DHCP,但是Jenkins总改IP也不好。。于是绑定一下吧。

在mac 中 系统偏好设置 -> 网络 记录下来当前获取到的IP。

高级中将使用DHCP修改为使用DHCP(手动设定地址),然后将上面的地址填进去就好啦~

当然你也可以指定其他的地址,只要别人没有占用😂,你开心就好~