iOS主工程修改后一键同步Pod的ruby脚本
2020/7/3 23:27:28
本文主要是介绍iOS主工程修改后一键同步Pod的ruby脚本,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
模块化很好,但如果需要同时修改多个Pod就比较繁琐了。
先在Example里修改了多个Pod的code,再手动copy到各个Pod比较麻烦,还容易漏
以下ruby脚本一键完成
需要先把各个Pod仓库Clone下来并切换到对应的分支,分支不对 不会同步的
TODO:
1、用脚本实现Clone和切换分支「easy」
2、通过gitlab api分析提交文件列表,在持续集成服务器执行同步Pod操作任务,并结果通知到提交者
# frozen_string_literal: true require 'pathname' # gem install git require 'git' require 'fileutils' # 目录结构如下 # ├── ABCPods1 # │ ├── ABCPods1 # │ │ └── Code.m # │ └── ABCPods1.podspec # ├── ABCPods2 # │ ├── ABCPods1 # │ │ └── Code.m # │ └── ABCPods1.podspec # ├── ABCPods3 # │ ├── ABCPods3 # │ │ └── Code.m # │ └── ABCPods3.podspec # └── Example # └── Pods # ├── ABCPods1 # │ └── Code.m # ├── ABCPods2 # │ └── Code.m # └── ABCPods3 # └── Code.m # 在Example里修改了多个模块的code。再手动copy到各个Pod比较麻烦,还容易漏 # 以下脚本一键完成 # 需要先把各个Pod手动切换到对应的分支,分支不对 不会同步的 Git.configure do |config| config.binary_path = '/usr/local/bin/git' end # 变量设置 pods_path = Pathname.new 'path/to/Example/Pods' git_container = Pathname.new '/path/to/gitcontainer/' start_filter = 'ABCPods' filter_branch = 'test_branch_name' # 找到文件夹列表 all_dir = pods_path.children.select { |e| e.basename.to_s.start_with?(start_filter) } # 组装数据 all_dir_map = all_dir.map { |e| [e, git_container + e.basename + e.basename] } all_dir_map.each do |path_list| # path_list 第一个是主工程的文件夹 第二个是Pod的代码文件夹 dest_item = path_list.last # next unless dest_item.basename.to_s.eql? 'ABCPods1' # use test next unless FileTest.exist? dest_item.parent g = Git.open dest_item.parent next unless g.current_branch.eql? filter_branch puts "#{path_list.first} copy to #{dest_item}" FileUtils.rm_r(dest_item, force: true) src = path_list.first + path_list.first.basename dest = dest_item.parent FileUtils.cp_r(src, dest) # 打印出有修改的,根据日志自己Review后提交 status_output = `git -C #{dest} status` puts status_output unless status_output.include? 'working tree clean' end 复制代码
这篇关于iOS主工程修改后一键同步Pod的ruby脚本的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-10-05Swift语法学习--基于协议进行网络请求
- 2022-08-17Apple开发_Swift语言地标注释
- 2022-07-24Swift 初见
- 2022-05-22SwiftUI App 支持多语种 All In One
- 2022-05-10SwiftUI 组件参数简写 All In One
- 2022-04-14SwiftUI 学习笔记
- 2022-02-23Swift 文件夹和文件操作
- 2022-02-17Swift中使用KVO
- 2022-02-08Swift 汇编 String array
- 2022-01-30SwiftUI3.0页面反向传值