V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
6yong
V2EX  ›  程序员

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

  •  
  •   6yong · 2017-05-24 14:39:15 +08:00 · 3519 次点击
    这是一个创建于 2729 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    18 条回复    2017-05-24 22:42:04 +08:00
    crysislinux
        1
    crysislinux  
       2017-05-24 14:41:38 +08:00
    可以换个脚本吧,比如 Python ?
    finab
        2
    finab  
       2017-05-24 14:50:22 +08:00
    。。。。。

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

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

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

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

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

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

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

    4、上传到 maven 显示的文件名
    不懂。。
    sosng
        18
    sosng  
       2017-05-24 22:42:04 +08:00
    用 fastlane,半天 ruby 经验,美滋滋
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3504 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 04:50 · PVG 12:50 · LAX 20:50 · JFK 23:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.