偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

讓程序員變懶的工具 : Jenkins + 蒲公英

移動開發(fā)
經(jīng)常看到很多博文里面講’懶惰’是一個優(yōu)秀程序猿的良好品質(zhì),這一點我深以為然,因為在程序猿的工作中總是充滿了重復勞動,也許正是因為這個原因,導致大部分程序猿慢慢變得懶惰,而那些沒變懶的程序猿他們慢慢滅絕了~~~。而對于懶惰這個詞,我們不能曲解它的意思,并不是怠倦、消沉的對待工作,而是當一個程序員遇到重復的工作時,懶惰的程序員首先想到的是我要開發(fā)出一個工具自動執(zhí)行這些工作。

關(guān)于懶惰

經(jīng)常看到很多博文里面講’懶惰’是一個優(yōu)秀程序猿的良好品質(zhì),這一點我深以為然,因為在程序猿的工作中總是充滿了重復勞動,也許正是因為這個原因,導致大部分程序猿慢慢變得懶惰,而那些沒變懶的程序猿他們慢慢滅絕了~~~。而對于懶惰這個詞,我們不能曲解它的意思,并不是怠倦、消沉的對待工作,而是當一個程序員遇到重復的工作時,懶惰的程序員首先想到的是我要開發(fā)出一個工具自動執(zhí)行這些工作。

為什么需要工具

當 UI 妹子給你一大堆圖片而沒有給你加上 @2x 后綴時,看著妹子可憐的眼神,怎么忍心讓妹子們返工,懶惰的程序員就在想了,這特么是一個循環(huán)重復的勞動,為啥不寫個腳本自動給每張圖片文件名加上一個 @2x 后綴呢,分分鐘搞定,然后準時下班約會去了。。。。

所以很早之前我的***個開源工具 dSYM 分析工具 就是這么來的,當我連在命令行中續(xù)修改了幾個友盟統(tǒng)計后臺收集到異常后,我發(fā)現(xiàn)這就是一個重復而且繁瑣的勞動啊,所以我便花了兩個多小時做了一個 APP 應用,這樣以后我每次需要做的只是:1)打開應用,2)拖入 dSYM 文件 3)輸入異常地址,便得到異常信息了。

而寫這篇文章則講述了我是如何一步一步從 1)手動打包 –> 2)Jenkins 打包,手動發(fā)布 –> 3)Jenkins 打包 + 蒲公英 分發(fā) 的。

起因

對于發(fā)包這個問題,相信是每個程序猿哥哥心中揮之不去的痛,而測試妹子們也在每次馬上就發(fā)的承諾中得出一個結(jié)論 : “你是個大騙子”。

所以每次被測試妹子追著要測試包,產(chǎn)品經(jīng)理說給我裝一個開發(fā)中的新版本瞧瞧唄,后臺哥哥說給我安裝一個某某老版本的包調(diào)試一下啊。。。然后每次不得暫停下手中的工作,切換到某個版本,Archive。。。。終于有一次答應測試妹子吃飯前會給他們發(fā)包后,忙著忙著就忘掉直接去吃飯了,看著妹子 QQ 上發(fā)來各種鄙視的表情,這不是我想要的人生啊,我一定要改變在測試妹子心中的形象,所以自動化構(gòu)建這件事情提上日程.

使用 Jenkins 半自動化

我直接選用了已經(jīng)很成熟的 Jenkins 持續(xù)集成解決方案,至于如何配置就不做過多介紹了,網(wǎng)上有不少這類的文章。有了 Jenkins 后,給我?guī)碜畋憷囊稽c就是,每次打包的時候,直接在公司的 Mac 服務器上進行操作,而我還可以繼續(xù)進行手上的工作,打包完成后把 ipa 包發(fā)給測試,同時也教會了測試如何從 Jenkins 上下載已經(jīng)打包好的 ipa 文件,就這樣我可以隨時在手機上打開公司內(nèi)網(wǎng)的 Jenkins 打包,當我把這一切告訴測試妹子的時候,她用期望的眼神看著我說:“這是真的么。。。”

Jenkins + 蒲公英 升級

就這樣用了一段時間,也沒遇到什么問題,或許是比較愛折騰,我發(fā)現(xiàn)每次 Jenkins 打包好了之后,我還需要手動去下載,或者讓測試他們下載,當測試拿到文件后,還需要將手機連到電腦用 iTunes 或者第三方工具安裝文件,我想要是 Jenkins 打包完成后會自動通知測試更新并安裝該多好,而且之前也聽說過第三方的分發(fā)平臺 “蒲公英”,于是我去蒲公英網(wǎng)站看了一番,很高興的是他們開放上傳 APP 和安裝 APP 等 API,有了這個東西,我的想法便完全可以實現(xiàn)了:1)Jenkins 打包 2)打包成功后 IPA 文件上傳到 Tomcat 服務器 3)通過 API 把 IPA 文件傳給 蒲公英 4)上傳成功后把安裝地址通過郵件發(fā)送給測試。 5)測試直接在手機上打開地址安裝。

流程圖大概像這樣:
 

圖片

1.IPA 文件上傳到 Tomcat 服務器

由于每次 Jenkins 打包的時候,編譯后的文件是放在項目根目錄下的 build 文件夾里面,每次 build 的時候這個文件夾內(nèi)的文件都會被覆蓋,所以每次 build 后我都會通過 FTP 把 IPA 文件上傳到 Tomcat 上備份,同時還可以方便提供給別人下載,比如在給測試發(fā)送蒲公英的安裝地址時,同時也可以給出 IPA 下載地址。

* 開啟 Mac FTP-server

Mac 電腦本身是支持 FTP 服務的,只不過系統(tǒng)默認關(guān)閉了,Mountain Tweaks 這款軟件可以很方便的修改系統(tǒng)的一些設置,比如是否開啟打開 Window 動畫,是否顯示用戶的 Library 文件夾,其中有一個選項就是是否開啟系統(tǒng)的 FTP-server 功能。
 

圖片

* 配置 Jenkins 的 FTP Server

Mac服務器支持 FTP-server 后,我在 Jenkins 上安裝了 Publish Over FTP Plugin 這個插件,這個插件可以將指定的文件發(fā)送到選中的 FTP 服務器上去,安裝完插件后,在 Jenkins 的系統(tǒng)設置中會多出一項 Publish over FTP 的設置,因為 Tomcat 和 Jenkins 是在一臺電腦上,所以 Hostname 直接指向本地,Remote Directory 也直接指向 Tomcat 的 webapps 下對應 app 的目錄。配置好后可以點 Test Configuration 測試一下,如果顯示 success,則成功了。

圖片

* 在 Job 的設置里面指定上傳到 FTP 的文件

Jenkins 配置好 FTP Server 后,接下來就需要在 Job 中去設置打包成功后把哪些文件上傳到指定的 FTP Server 中去了。在 增加構(gòu)建后操作步驟中 有一個 Send build artifacts over FTP 選項,這里首先需要選擇我們之前配好的 FTP Server。Source files 是我們構(gòu)建目錄下 build 文件夾內(nèi)所有的文件,Remove prefix設置為 build 是告訴插件創(chuàng)建路徑的時候不要包含 build,Remote directory則是我們指定的 FTP Server 上需要創(chuàng)建的目錄,這里我以 Jenkins 構(gòu)建的版本號去創(chuàng)建文件夾,之后取文件的時候,路徑便會很方便拼接。

圖片

#p#

2.通過 API 把 IPA 文件傳給 蒲公英

打包成功了,并且文件也備份到 Tomcat 上去之后,接下來就需要編寫腳本了,腳本需要的功能是:1)上傳 IPA 文件到 蒲公英 2)發(fā)郵件通知測試。這兩點通過腳本是很好實現(xiàn)的,已經(jīng)放在 GitHub 上,如果想將腳本應用到自己的環(huán)境中,最主要的是如下這幾行代碼 :

圖片

uKey、file_name、_api_key、installPassword這四個值是根據(jù)自己的情況配置的。project_name的值很重要,涉及到很多地方:1)tomcat 的 webapps 目錄下面要有 project_name 對應的目錄,因為在獲取 ipa_file_tomcat_http_url 的時候,是需要 project_name的, 還有就是獲取發(fā)給蒲公英的 IPA 文件時也需要知道 project_name

接著就需要讓 Jenkins 去執(zhí)行這個腳本了,通過對 Jenkins 插件的搜索,找到一個叫 Post-Build Script Plug-in 的插件,功能官方介紹寫的很清楚:PostBuildScript makes it possible to execute a set of scripts at the end of the build.。

安裝完這個插件后,在 Job 的 增加構(gòu)建后操作步驟 中會多出一個 Execute a set of scripts 的選項,這里我只配置了 Build steps 中的 Execute shell,讓它用 Python編譯器去執(zhí)行項目根目錄下的腳本,還有就是 Execute script only if build success 勾選上:

圖片

這樣當 Jenkins 打包成功后,便會執(zhí)行此腳本,最終達到了我的目的。

最終收到的郵件大概是這樣的:

圖片

如果是在手機上打開郵件的話,可以直接使用第三種方式:點我直接安裝,這種方式最方便,其次是第二種,蒲公英在線安裝,***一種便是自己下載 IPA 包到本地,使用工具安裝。

到這兒之前設想的都已經(jīng)實現(xiàn)了,整個過程中從開發(fā)的角度來說,需要的只是點擊一下 Jenkins 中的 立即構(gòu)建 按鈕,然后就繼續(xù)做手頭上的事情把!

總結(jié)

教科書上把會不會制造工具當做人和動物的根本區(qū)別,我覺得這也是判斷一個好程序員的標準之一,優(yōu)秀的程序員總是會去尋找好的工具,或者自己去創(chuàng)造一些工具來提高自己的生產(chǎn)效率,他們通過工具把那些浪費在重復勞動上的時間花在了更有意義的事情上去。

任何工具出現(xiàn)的最初目的都是為了提高生產(chǎn)效率,很慶幸在 iOS 開發(fā)的這個圈子中有一大批的先驅(qū)者,他們創(chuàng)造并開源了很多優(yōu)秀的工具,為這個環(huán)境奠定了一個良好的基礎(chǔ),所以在工作或生活中,多創(chuàng)造工具,讓自己變得更懶,卻更有價值!

責任編輯:林師授 來源: answer-huang
相關(guān)推薦

2011-09-06 09:02:06

程序員

2013-04-08 15:39:15

程序員

2013-08-05 09:55:47

程序員

2023-02-16 08:23:07

2021-08-24 06:38:37

Node.js COW 文件復制

2023-09-13 15:06:24

2022-10-24 09:00:47

畫圖工具程序員XMind

2021-08-28 23:26:14

程序員編碼電腦

2015-06-16 13:00:43

程序員跳槽原因

2011-08-29 17:05:55

2013-08-20 09:33:59

程序員

2013-10-31 09:36:43

程序員程序高手

2015-07-20 09:21:19

程序員非程序員技能

2016-03-02 10:49:08

程序員快樂

2020-06-05 07:52:25

程序員離職編碼

2011-05-13 14:34:02

程序員

2014-04-14 16:02:01

2014-07-01 09:43:55

程序員算法

2015-12-07 11:44:31

程序員厭倦工作

2015-12-09 09:17:11

情緒厭倦程序員
點贊
收藏

51CTO技術(shù)棧公眾號