有没有比 shell 更猛烈一点的?

2017-05-24 14:39:15 +08:00
 6yong

小弟是做 iOS 的,给公司搭了个构建服务器跑 jenkins,jenkins 上建任务来跑脚本( shell )进行打包,打完后上传的公司的 maven 仓库。

现在为了使用更加方便,所以要进行更多的参数化来配置我们的脚本。(签名配置、UI 资源配置、git 信息提取、debug/release 等等) 目前已经 7 个参数了,估计还要增加个四五个。 脚本代码行数也越来越多,不方便维护。新人接手估计也够呛。

所以想请教一下各位,有没有更好的方法管理脚本?或者更抽象的语言?

脚本主要是配置各种参数给这两个工具 1.gym 开源的 xcode 打包工具( https://github.com/fastlane/fastlane/tree/master/gym ) 2.curl 上传到 maven

3527 次点击
所在节点    程序员
18 条回复
crysislinux
2017-05-24 14:41:38 +08:00
可以换个脚本吧,比如 Python ?
finab
2017-05-24 14:50:22 +08:00
。。。。。

或许你知道 fastlane 吗?
finab
2017-05-24 14:50:58 +08:00
擦,你知道啊,那你上面那些问题不是问题啊
rockyou12
2017-05-24 14:58:28 +08:00
jenkins 自己就是 groovy 脚本啊,会 java 两下就上手了,虽然好多 groovy 语法用不了,有点坑。但人家带个插件和库还算全,基本不需要写 shell。
54007
2017-05-24 15:03:29 +08:00
@crysislinux python 学需要调用 linux 命令才可以吧
wellsc
2017-05-24 15:04:28 +08:00
powershell
54007
2017-05-24 15:04:50 +08:00
maven 不是管理 jar 包的吗,也可以管理 ios 的代码吗
hellojl
2017-05-24 15:11:12 +08:00
可以多建几个 job 啊,配置好上下游的关系。或者对 build 的脚本单独起一个 repo,在 Jenkins shell 中 clone & run
6yong
2017-05-24 15:11:16 +08:00
@54007 是文件就能管理
6yong
2017-05-24 15:12:14 +08:00
@finab gym 就是 fastlane 的其中一个功能
xjj59307
2017-05-24 15:12:55 +08:00
用 jenkins pipeline,没必要自己写脚本。

https://jenkins.io/doc/book/pipeline/
6yong
2017-05-24 15:21:58 +08:00
先谢楼上各位 我在描述下我的需求吧

现在我的脚本需要支持太多功能, 比如
1、更改打包的版本号
2、打包 debug 或 release 版本,或 all
3、上传到 maven 的哪个仓库
4、上传到 maven 显示的文件名
。。。

等等这些之前是写死在脚本内的,现在改由外部传参进去指定。
现在脚本已经几百行了,要扩展更多的原本写死的参数,由于不是对象语言,所以维护起来越来越麻烦。
所以想问大家是否有这方面经验
finab
2017-05-24 15:26:42 +08:00
@6yong fastlane 不止 gym。你的担心代码乱,参数多,维护不便 可以用 fastlane 写呀
ostholz
2017-05-24 15:29:06 +08:00
我用 ruby 写 iOS, 打包, 上传脚本.
momocraft
2017-05-24 15:40:47 +08:00
build 一般也还是在处理 shell 命令和文件,可能 bash 已经是最方便的语言了

可以考虑把一些流程抽象成 bash 函数?
6yong
2017-05-24 15:51:11 +08:00
@finab 好的 我再深入了解下
kanchi240
2017-05-24 16:25:49 +08:00
1、更改打包的版本号
修改 pom 里面的版本号

2、打包 debug 或 release 版本,或 all
代码拉分支,配置文件里面配置不同的仓库

3、上传到 maven 的哪个仓库
代码拉分支,配置文件里面配置不同的仓库

4、上传到 maven 显示的文件名
不懂。。
sosng
2017-05-24 22:42:04 +08:00
用 fastlane,半天 ruby 经验,美滋滋

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/363479

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX