Jenkins持续集成

640 阅读3分钟

安装Jenkins

brew install jenkins

问题: @@HOMEBREW_JAVA@@/bin/java 找不到此目录?

解决方案:HOMEBREW_BOTTLE_DOMAIN= brew install jenkins

原因:Installing Java-dependent formulae from bottle mirrors doesn't work properly at the moment. The issue is that brew needs the manifest in order to correctly replace @@HOMEBREW_JAVA@@ but brew only knows how to fetch manifests from ghcr.io.

brew services start jenkins

brew services restart jenkins

brew services stop jenkins

配置jenkins

在浏览器中请求 http://localhost:8080

输入密码。密码在 ~/.jenkins/secrets/initialAdminPassword 文件中。

安装推荐的插件。

创建管理员。

进入网站。

局域网其他电脑访问Jenkins服务需要将 ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist 及 /opt/homebrew/Cellar/jenkins/2.303.2/homebrew.mxcl.jenkins-lts.plist 两文件中ProgramArguments-httpListenAddress改为0.0.0.0

配置Manage Jenkins - System - Xcode Builder

填写xcode配置 - Apple Development Teams。此处可在项目里面配置

  • Development Team:开发团队
  • Development Team ID:开发团队ID

安装Manage Jenkins - Plugins - Xcode integration插件

安装Manage Jenkins - Plugins - thinBackup节点迁移插件

迁移节点

  • 使用thinBackup插件迁移job到新节点
  • 迁移shell脚本到新节点
  • 迁移~/.private_keys/xx.p8到新节点~/目录

构建一个自由风格的软件项目

进入首页,+新建item,选择自由风格项目

1、源码管理

从git服务器拉取源码

  • Repository URL:git仓库地址
  • Credentials:git仓库凭证,即git账号及密码
  • Branches:指定要拉取的git分支

2、构建-执行shell

修改源码,例如拉取指定的pod仓库、修改app的名称及版本号等

3、General build settings

配置开发账号,xcode根据开发账号可自动选择合适的开发证书(开发证书在)

  • Development Team:开发团队
  • Development Team ID:开发团队ID

4、Advanced Xcode build options

当工程代码在子目录里面、或使用pod管理代码、或git仓库包含多个工程等情况需要配置此项

  • Xcode Project Directory:项目所在目录
  • Xcode Workspace File:workspace文件名
  • Custom xcodebuild arguments:-destination 'generic/platform=iOS'(m1芯片电脑打包必填)

5、General build settings - 其他

指定编译的其他选项

  • Xcode Schema File:schema名称,使用workspace管理项目必须指定schema
  • Configuration:指定配置选项,包括Release、Debug等
  • Generate Archive:配置打包选项
    • Export method:打包类型,包括'development', 'ad-hoc', 'enterprise' or 'app-store'.
    • ipa filename pattern:指定ipa名称
    • Upload Symbols?: 上传符号选中

6、Code signing & OS X keychain options

签名选项

  • Automatic Signing:已配置开发账号,xcode可自动查找可用的开发证书、profile文件

7、构建-执行shell

此处可以执行编译后的脚本,例如上传ipa到appstore等。

注意:使用xctoole上传app需要将appstoreconnect后台申请的xx.p8放入~/.private_keys目录

cli方式使用Jenkins

需下载jenkins cli: wget http://localhost:8080/jnlpJars/jenkins-cli.jar

需使用apitoken,路径:个人账号 - 设置 - apitoken

1、拷贝job

导入job java -jar jenkins-cli.jar -s http://目标:8080 -auth 用户:ApiToken create-job jobname < jobname.xml

导出job java -jar jenkins-cli.jar -s http://localhost:8080/ -auth 用户:ApiToken  get-job jobname > jobname.xml

2、构建job

构建项目 java -jar jenkins-cli.jar -s http://localhost:8080/ -auth 用户:ApiToken -webSocket build jobname -s -v

停止构建项目 java -jar jenkins-cli.jar -s http://localhost:8080/ -auth 用户:ApiToken -webSocket stop-builds jobname

新任务集成

infer集成

安装插件 Warnings Next Generation Plugin

配置任务

  • 执行检测脚本
  • 解析检测结果:Record compiler warnings and static analysis results - PMD - xx/infer-out/report.xml