Pod-auto-update

组件化 Pod 自动更新脚本
授权协议 MIT
开发语言 Python
所属分类 手机/移动开发、 iOS/iPhone/iPad开发包
软件类型 开源软件
地区 国产
投 递 者 云卓
操作系统 iOS
开源组织
适用人群 未知
 软件概览

在 iOS 领域使用 Pod 来进行组件化开发时常常需要手动进行一系列的操作,来实现Pod 组件的更新目的。特别是一些业务关联性比较强的 Pod 组件,需要经常对其进行更新。随着组件的体积越来越大,每次更新的时候,执行 pod lib lint,等待了好几分钟之后,好不容易 podspec 文件检查通过了,需要再进行打 tag 操作,然后再执行 pod repo push 操作,然后再等好几分钟,才能将完成一个 Pod 组件的更新。整个流程不仅耗时,而且繁琐,机械化。这个脚本虽然没能提高pod lib lint 和 pod repo push 的执行速度,但是将这系列繁琐的操作,变成一句话完成。你可以一句话执行脚本,然后离开位置,去倒杯水,活动活动身子,稍微休息休息,再回来时,Pod 组件已经更新完毕并推送到远端了。

前提条件:

你的 Pod 组件必须是已经正确配置,且之前有过手动输命令行更新的经历。

脚本所包含的操作:

1. podspec 小版本自加一,比如 s.version = "0.1.1" 自动变成 s.version = "0.1.2",或者s.version = "10.22.0.15" 变成s.version = "10.22.0.16",无论版本长什么样,只要写法是能通过 podspec 的语法检查,那么它就可以自动更新最后一位。

2. pod lib lint 语法检查,如果有依赖私有源,可以在顶部配置地址,既可用于github 上的开源组件,也可用于 Gitlab 内部团队的私有组件,至于Bitbucket,没有试过,但是理论上应该是可行的,如果你发现不行,自己调试之后无法解决,可以在 issue 上提出。

3. git add, git commit, git push,git tag , git push —tags 一系列git 操作,完成提交与 Tag 的推送。

4. pod repo push 操作,将pod组件推送到远端,完成一次pod组件的小版本更新。

怎么使用

1. 将auto.py文件拖入Pod组件工程中,并保证它与 podspec 文件处于同一级别的目录,如下图 


如果你觉得有必要,可自行将auto.py加入到 .gitignore 中。

2. 打开auto.py在顶部虚线框中进行配置。如下图


第一项 sources 是pod组件所依赖的私有源地址,它是一个数组,可以填写多个私有源,用逗号隔开。其中 https://github.com/CocoaPods/Specs.git 不需要填写,脚本内已经写了。

第二项是你的项目名称

第三项是podspec文件名

3. 打开终端,cd 到这个脚本文件所在目录中,执行 python auto.py,即可开始小版本自动升级。如果你的 Pod 已经配置正确,并且之前有过手动输入指令进行升级的经历,那么脚本应该是能成功运行的。

  • 环境说明 Centos7.4 kubernetes1.9.2 docker17.12.1-ce 修改controller-manager启动参数 1.将静态pod目录下的kube-controller-manager.yaml移到到其它目录下更改,在manifests目录下直接更改文件,会产生临时文件,从而导致controller-manager无法正常启动 mv /etc/kubernetes/

  • 1.获取资源 kubectl get <reousrce_type> 2.查看资源详情 kubectl describe <reousrce_type> <reousrce_name> 3.kubernetes设计Pod中为何要有pause根容器 • Pause作为Pod的根容器,可以代表整个容器组的状态 • Pod里的多个业务容器共享Pause容器的IP,共享Pause容器挂接的Volume

 相关资料
  • 本文向大家介绍cocoapods Pod更新Checklist,包括了cocoapods Pod更新Checklist的使用技巧和注意事项,需要的朋友参考一下 示例 使用更新您的项目 git pull origin master s.version内部更新MyRepo.podspec 检查本地错误 pod lib lint MyRepo.podspec git add . 和 git commit

  • 当与后台程序集关联的Kubernetes Pod的configmap更新时,如何自动重新启动它们? 根据kubernetes文档,当configmap卷挂载更新时,它会自动更新POD。但是,我并不认为后台进程集会发生这种情况。我错过了什么? 当我更新configmap中的字段以读取另一个日志文件时,虽然我看到卷挂载正在更新,但我看不到POD正在接收更改,除非我删除并重新创建后台启动。 有没有一种方

  • POD

    所谓POD(Plain Old Data),指的是那些可以像C结构体一样直接操作的“普通”类型,对于该种类型,可以直接对它用memset()/memcpy()来进行初始化/拷贝等操作。 在C++98标准中,POD实际上是受限于结构体定义时所涉之语言特性而定义的。 struct S { int a; }; // S属于POD struct SS { int a; SS(int aa) : a(

  • 我有两个豆荚在kubernetes星系团内运行。豆荚如下 MongoDB豆荚,其类型为:statefulset 脚本吊舱,其类型为:job 如何为提供在mongodb吊舱中运行上述命令的权限? 因此,正如您所说,我创建了另一个类似的pod:job并包含了script.sh。 在script.sh文件中,我运行“Kubectl exec”到主吊舱以运行一些命令 因此,我使用资源创建了一个cluste

  • 注意:PodPreset 资源对象只有 kubernetes 1.8 以上版本才支持。 Preset 就是预设,有时候想要让一批容器在启动的时候就注入一些信息,比如 secret、volume、volume mount 和环境变量,而又不想一个一个的改这些 Pod 的 template,这时候就可以用到 PodPreset 这个资源对象了。 本页是关于 PodPreset 的概述,该对象用来在 P

  • Pod hook(钩子)是由Kubernetes管理的kubelet发起的,当容器中的进程启动前或者容器中的进程终止之前运行,这是包含在容器的生命周期之中。可以同时为Pod中的所有容器都配置hook。 Hook的类型包括两种: exec:执行一段命令 HTTP:发送HTTP请求。 参考下面的配置: apiVersion: v1 kind: Pod metadata: name: lifecyc