fir.im 脚本与 Jenkins 的无缝衔接

初衷

@ 想得到当前上传包对应的下载页地址,而不是一个固定的最新下载页地址。

一般使用的是最新的下载有地址,比如:https://fir.im/xxxx。实际上在 Jenkins 中使用的时候,希望的是得到对应每次上传时的下载页地址,毕竟在 Jenkins 中,我们会打不通环境的包,如果是 Flutter 项目,可能会打 iOS 或者 apk 包,把下载地址写死那就不可以了。通过仔细发现,每个下载页的地址是这样的:https://fir.im/xxxx?release_id=release_id.然而这个 release_id 在 fir-cli 工具中有所返回。样例如下:

fir.im 脚本与 Jenkins 的无缝衔接_第1张图片
Result.png

为了方便后期的更新管理,我将代码放到了 upload_script, 可以直接去下载查看。
为了方便后期的更新管理,我将代码放到了 upload_script, 可以直接去下载查看。
为了方便后期的更新管理,我将代码放到了 upload_script, 可以直接去下载查看。

你放心,如果哪一天 fir 的官网域名又换了,这个脚本也依然能用,更新一下 fir-cli 就可以了。

中心思想

1、通过脚本方便上船 apk 或者 ipa 文件。

2、拼接当前上传的文件的下载地址。

因为每次上传之后上船的下载地址是不一样的,通过观察发现需要拼接一个 release_id(详情见脚本)。这样做的目的是方便找到对应的打包下载页,预知具体原因请看下一条。

3、完美的结合 Jenkins 的使用。

看完了脚本代码以后,你会发现与 Jenkins 貌似没有半点关系,其实是有关系的,主要是最后一个 echo 的打印内容。看注释就知道是需要结合 Jenkins 的 descroption 功能一起使用的。

4、在 Jenkins 中使用的效果

fir.im 脚本与 Jenkins 的无缝衔接_第2张图片
Jenkins.png

这样做了之后,是不是就很容易的找到当前打包对应的下载地址了( 注意 :显示的地址是固定地址,但是 href 的值是当前包对应的下载地址)。
当然需要在 Jenkins 中做对应的设置:

fir.im 脚本与 Jenkins 的无缝衔接_第3张图片
Descroption.png

注意 : DescroptionStart(.*?)DescroptionEnd 是与脚本中最后一行打印一一对应的。

温馨提示

这几天 fir.im 的 https://fir.im 访问不了,换成 https://www.jappstore.com 就可以了。一旦使用我的这个脚本之后,我们更新一下 fir-lci 就可以了。目前需要更新到:2.0.3.1 版本。
我今天更新的时候发现使用 gem update fir-cli 没有办法更新,提示当前就是最先的,但是可以直接使用 sudo install fir-cli 就可以更新到 2.0.3.1 版本。不知何故?!!!

怎么样,能点个赞么?谢谢!

你可能感兴趣的:(fir.im 脚本与 Jenkins 的无缝衔接)