国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)與流程

      文檔序號(hào):12270928閱讀:217來(lái)源:國(guó)知局
      軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)與流程

      本發(fā)明涉及軟件技術(shù)領(lǐng)域,具體而言,涉及一種軟件構(gòu)建方法、一種軟件構(gòu)建裝置和一種軟件構(gòu)建系統(tǒng)。



      背景技術(shù):

      目前實(shí)現(xiàn)軟件構(gòu)建時(shí),通常將版本控制工具直接安裝于各個(gè)構(gòu)建平臺(tái)。因此,當(dāng)使用同一套代碼在不同的構(gòu)建平臺(tái)做構(gòu)建工作時(shí),往往由于某些構(gòu)建平臺(tái)(例如clearcase、git、starteam)不支持所用的版本控制工具而無(wú)法直接檢出代碼,而導(dǎo)致構(gòu)建流程很繁瑣。在這種情況下,需要將代碼從支持版本控制工具的構(gòu)建平臺(tái)上檢出,然后拷貝到不支持版本控制工具的目標(biāo)構(gòu)建平臺(tái)上,然后再修改目標(biāo)構(gòu)建平臺(tái)的構(gòu)建參數(shù)等一系列工作后再進(jìn)行構(gòu)建。構(gòu)建失敗后需要在支持版本控制工具的構(gòu)建平臺(tái)上修改代碼,然后重新進(jìn)行上述操作后進(jìn)行構(gòu)建;如果構(gòu)建成功,將構(gòu)建的結(jié)果文件傳回支持版本控制工具的構(gòu)建平臺(tái)上。

      但是,現(xiàn)有技術(shù)中的構(gòu)建方案至少存在以下幾點(diǎn)不足:一、開發(fā)人員需要修改代碼,并且在進(jìn)行構(gòu)建時(shí),需要將代碼在構(gòu)建平臺(tái)上反復(fù)傳輸,時(shí)間效率將受到影響;二、繁瑣的構(gòu)建步驟增大了出錯(cuò)的概率;三、構(gòu)建過程中的構(gòu)建參數(shù)需要在構(gòu)建平臺(tái)上配置,無(wú)法進(jìn)行統(tǒng)一配置。

      因此,如何使得不支持版本控制工具的構(gòu)建平臺(tái)可以更加方便快捷地使用代碼進(jìn)行構(gòu)建工作,從而提高構(gòu)建效率成為亟待解決的技術(shù)問題。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明旨在至少解決現(xiàn)有技術(shù)或相關(guān)技術(shù)中存在的技術(shù)問題之一。

      為此,本發(fā)明的一個(gè)目的在于提出了一種軟件構(gòu)建方法。

      本發(fā)明的另一個(gè)目的在于提出了一種軟件構(gòu)建裝置。

      為實(shí)現(xiàn)上述至少一個(gè)目的,根據(jù)本發(fā)明的第一方面的實(shí)施例,提出了一種軟件構(gòu)建方法,包括:通過版本控制工具檢出代碼,且所述代碼檢出的物理位置為共享磁盤;對(duì)多個(gè)構(gòu)建平臺(tái)進(jìn)行解析,來(lái)設(shè)置所述多個(gè)構(gòu)建平臺(tái)中的每個(gè)構(gòu)建平臺(tái)的構(gòu)建參數(shù)和環(huán)境配置參數(shù);調(diào)用所述每個(gè)構(gòu)建平臺(tái),以使所述每個(gè)構(gòu)建平臺(tái)使用所述共享磁盤上的所述代碼進(jìn)行構(gòu)建工作;以及在確定所述多個(gè)構(gòu)建平臺(tái)中的任一構(gòu)建平臺(tái)構(gòu)建完成時(shí),將所述任一構(gòu)建平臺(tái)構(gòu)建完成的信號(hào)發(fā)送給部署服務(wù)器,以供所述部署服務(wù)器根據(jù)所述信號(hào)將所述任一構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件發(fā)送到所述共享磁盤上的與所述任一構(gòu)建平臺(tái)對(duì)應(yīng)的目錄中。

      在該技術(shù)方案中,通過將檢出的代碼存放在共享磁盤上,以實(shí)現(xiàn)代碼的統(tǒng)一管理。并且統(tǒng)一為每個(gè)構(gòu)建平臺(tái)設(shè)置構(gòu)建參數(shù)和環(huán)境配置參數(shù),以使不支持版本控制工具的構(gòu)建平臺(tái)能夠直接從共享磁盤上獲取代碼進(jìn)行構(gòu)建工作,在構(gòu)建完成時(shí),通過部署服務(wù)器將每個(gè)構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件發(fā)送到共享磁盤上的與每個(gè)構(gòu)建平臺(tái)對(duì)應(yīng)的目錄中。通過以上技術(shù)方案,將版本控制工具與構(gòu)建平臺(tái)分離,避免了開發(fā)人員由于某些構(gòu)建平臺(tái)不支持版本控制工具而修改代碼,以及避免了代碼在構(gòu)建平臺(tái)上反復(fù)傳輸,從而提高了使用代碼進(jìn)行構(gòu)建工作的效率。而且相比于現(xiàn)有技術(shù)而言,大大簡(jiǎn)化了使用代碼進(jìn)行構(gòu)建工作的步驟,從而降低了構(gòu)建時(shí)的出錯(cuò)概率。

      該技術(shù)方案中的軟件構(gòu)建方法可用于構(gòu)建主機(jī),通過構(gòu)建主機(jī)上的版本控制工具檢出代碼,以使版本控制工具與構(gòu)建平臺(tái)分離,實(shí)現(xiàn)代碼的統(tǒng)一檢出與管理,從而使得不支持版本控制工具的構(gòu)建平臺(tái)能夠進(jìn)行構(gòu)建工作。

      在上述任一技術(shù)方案中,優(yōu)選地,所述共享磁盤掛載到所述多個(gè)構(gòu)建平臺(tái)的路徑相同。

      在該技術(shù)方案中,共享磁盤掛載到多個(gè)構(gòu)建平臺(tái)的路徑均相同,從而避免配置各個(gè)構(gòu)建平臺(tái)與共享磁盤之間的路徑,進(jìn)而進(jìn)一步地簡(jiǎn)化了構(gòu)建的步驟,保證了構(gòu)建效率。

      在上述任一技術(shù)方案中,優(yōu)選地,所述共享磁盤為網(wǎng)絡(luò)文件系統(tǒng)(NFS,Network File System)的共享磁盤或者磁盤陣列。

      在該技術(shù)方案中,利用NFS的共享磁盤或者磁盤陣列對(duì)代碼進(jìn)行存儲(chǔ),可以保證存儲(chǔ)資源的充分利用。其中,磁盤陣列(Redundant Arrays of Independent Disks,RAID)包括但不限于RAID 0、RAID 1、RAID 0+1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 6、RAID 7、RAID 10、RAID 53。

      在上述任一技術(shù)方案中,優(yōu)選地,所述檢出代碼的步驟包括:判斷所述多個(gè)構(gòu)建平臺(tái)中的每?jī)蓚€(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間是否存在沖突;若所述多個(gè)構(gòu)建平臺(tái)中的其中兩個(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間存在沖突,則為所述多個(gè)構(gòu)建平臺(tái)檢出多份所述代碼,其中,所述多個(gè)構(gòu)建平臺(tái)與多個(gè)所述代碼一一對(duì)應(yīng);若所述每?jī)蓚€(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間均不存在沖突,則為所述多個(gè)構(gòu)建平臺(tái)檢出一份所述代碼。

      在該技術(shù)方案中,若多個(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間存在沖突,則分別為每個(gè)構(gòu)建平臺(tái)檢出一份代碼,以使每個(gè)構(gòu)建平臺(tái)使用其對(duì)應(yīng)的代碼進(jìn)行構(gòu)建工作,從而避免構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件之間存在沖突。

      在上述任一技術(shù)方案中,優(yōu)選地,在為所述多個(gè)構(gòu)建平臺(tái)檢出多份所述代碼的情況下,所述軟件構(gòu)建方法還包括:將每份所述代碼存儲(chǔ)到所述共享磁盤上與其對(duì)應(yīng)的目錄中,每份所述代碼存儲(chǔ)的目錄的名稱與所述代碼對(duì)應(yīng)的構(gòu)建平臺(tái)的名稱一致。

      在該技術(shù)方案中,通過將多份代碼存儲(chǔ)到不同的目錄中,且目錄的名稱是其中的代碼對(duì)應(yīng)的構(gòu)建平臺(tái)的名稱,以使存儲(chǔ)不同的代碼的目錄之間能夠區(qū)分。

      根據(jù)本發(fā)明的第二方面的實(shí)施例,提出了一種軟件構(gòu)建裝置,包括:代碼檢出單元,用于通過版本控制工具檢出代碼,且所述代碼檢出的物理位置為共享磁盤;設(shè)置單元,用于對(duì)多個(gè)構(gòu)建平臺(tái)進(jìn)行解析,來(lái)設(shè)置所述多個(gè)構(gòu)建平臺(tái)中的每個(gè)構(gòu)建平臺(tái)的構(gòu)建參數(shù)和環(huán)境配置參數(shù);調(diào)用單元,用于調(diào)用所述每個(gè)構(gòu)建平臺(tái),以使所述每個(gè)構(gòu)建平臺(tái)使用所述共享磁盤上的所述代碼進(jìn)行構(gòu)建工作;以及發(fā)送單元,用于在確定所述多個(gè)構(gòu)建平臺(tái)中的任一構(gòu)建平臺(tái)構(gòu)建完成時(shí),將所述任一構(gòu)建平臺(tái)構(gòu)建完成的信號(hào)發(fā)送給部署服務(wù)器,以供所述部署服務(wù)器根據(jù)所述信號(hào)將所述任一構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件發(fā)送到所述共享磁盤上的與所述任一構(gòu)建平臺(tái)對(duì)應(yīng)的目錄中。

      在該技術(shù)方案中,通過將檢出的代碼存放在共享磁盤上,以實(shí)現(xiàn)代碼的統(tǒng)一管理。并且統(tǒng)一為每個(gè)構(gòu)建平臺(tái)設(shè)置構(gòu)建參數(shù)和環(huán)境配置參數(shù),以使不支持版本控制工具的構(gòu)建平臺(tái)能夠直接從共享磁盤上獲取代碼進(jìn)行構(gòu)建工作,在構(gòu)建完成時(shí),通過部署服務(wù)器將每個(gè)構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件發(fā)送到共享磁盤上的與每個(gè)構(gòu)建平臺(tái)對(duì)應(yīng)的目錄中。通過以上技術(shù)方案,將版本控制工具與構(gòu)建平臺(tái)分離,避免了開發(fā)人員由于某些構(gòu)建平臺(tái)不支持版本控制工具而修改代碼,以及避免了代碼在構(gòu)建平臺(tái)上反復(fù)傳輸,從而提高了使用代碼進(jìn)行構(gòu)建工作的效率。而且相比于現(xiàn)有技術(shù)而言,大大簡(jiǎn)化了使用代碼進(jìn)行構(gòu)建工作的步驟,從而降低了構(gòu)建時(shí)的出錯(cuò)概率。

      該技術(shù)方案中的軟件構(gòu)建裝置可用于構(gòu)建主機(jī),通過構(gòu)建主機(jī)上的版本控制工具檢出代碼,以使版本控制工具與構(gòu)建平臺(tái)分離,實(shí)現(xiàn)代碼的統(tǒng)一檢出與管理,從而使得不支持版本控制工具的構(gòu)建平臺(tái)能夠進(jìn)行構(gòu)建工作。

      在上述任一技術(shù)方案中,優(yōu)選地,所述共享磁盤掛載到所述多個(gè)構(gòu)建平臺(tái)的路徑相同。

      在該技術(shù)方案中,共享磁盤掛載到多個(gè)構(gòu)建平臺(tái)的路徑均相同,從而避免配置各個(gè)構(gòu)建平臺(tái)與共享磁盤之間的路徑,進(jìn)而進(jìn)一步地簡(jiǎn)化了構(gòu)建的步驟,保證了構(gòu)建效率。

      在上述任一技術(shù)方案中,優(yōu)選地,所述共享磁盤為網(wǎng)絡(luò)文件系統(tǒng)(NFS,Network File System)的共享磁盤或者磁盤陣列。

      在該技術(shù)方案中,利用NFS的共享磁盤或者磁盤陣列對(duì)代碼進(jìn)行存儲(chǔ),可以保證存儲(chǔ)資源的充分利用。其中,磁盤陣列(Redundant Arrays of Independent Disks,RAID)包括但不限于RAID 0、RAID 1、RAID 0+1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 6、RAID 7、RAID 10、RAID 53。

      在上述任一技術(shù)方案中,優(yōu)選地,所述代碼檢出單元包括:判斷子單元,用于判斷所述多個(gè)構(gòu)建平臺(tái)中的每?jī)蓚€(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間是否存在沖突;檢出子單元,用于若所述多個(gè)構(gòu)建平臺(tái)中的其中兩個(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間存在沖突,則為所述多個(gè)構(gòu)建平臺(tái)檢出多份所述代碼,其中,所述多個(gè)構(gòu)建平臺(tái)與多個(gè)所述代碼一一對(duì)應(yīng);所述檢出子單元還用于,若所述每?jī)蓚€(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間均不存在沖突,則為所述多個(gè)構(gòu)建平臺(tái)檢出一份所述代碼。

      在該技術(shù)方案中,若多個(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間存在沖突,則分別為每個(gè)構(gòu)建平臺(tái)檢出一份代碼,以使每個(gè)構(gòu)建平臺(tái)使用其對(duì)應(yīng)的代碼進(jìn)行構(gòu)建工作,從而避免構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件之間存在沖突。

      根據(jù)本發(fā)明的第三方面的實(shí)施例,提出了一種軟件構(gòu)建系統(tǒng),包括:多個(gè)構(gòu)建平臺(tái);部署服務(wù)器;共享磁盤,以及構(gòu)建主機(jī),部署有版本控制工具和如上述技術(shù)方案中任一項(xiàng)所述的軟件構(gòu)建裝置,因此,該軟件構(gòu)建系統(tǒng)具有和上述技術(shù)方案中任一項(xiàng)所述的軟件構(gòu)建裝置相同的技術(shù)效果,在此不再贅述。

      通過本發(fā)明的技術(shù)方案,使得不支持版本控制工具的構(gòu)建平臺(tái)可以更加方便快捷地使用代碼進(jìn)行構(gòu)建工作,從而提高構(gòu)建效率。

      附圖說明

      圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件構(gòu)建方法的流程示意圖;

      圖2示出了根據(jù)本發(fā)明的另一個(gè)實(shí)施例的軟件構(gòu)建方法的流程示意圖;

      圖3示出了根據(jù)本發(fā)明的實(shí)施例的各構(gòu)建平臺(tái)執(zhí)行的構(gòu)建步驟的流程示意圖;

      圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件構(gòu)建裝置的結(jié)構(gòu)示意圖;

      圖5示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件構(gòu)建系統(tǒng)的結(jié)構(gòu)示意圖。

      具體實(shí)施方式

      為了可以更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例及實(shí)施例中的特征可以相互組合。

      在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來(lái)實(shí)施,因此,本發(fā)明的保護(hù)范圍并不受下面公開的具體實(shí)施例的限制。

      圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件構(gòu)建方法的流程示意圖。

      如圖1所示,根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件構(gòu)建方法,包括:

      步驟102,通過版本控制工具檢出代碼,且所述代碼檢出的物理位置為共享磁盤。

      步驟104,對(duì)多個(gè)構(gòu)建平臺(tái)進(jìn)行解析,來(lái)設(shè)置所述多個(gè)構(gòu)建平臺(tái)中的每個(gè)構(gòu)建平臺(tái)的構(gòu)建參數(shù)和環(huán)境配置參數(shù)。

      步驟106,調(diào)用所述每個(gè)構(gòu)建平臺(tái),以使所述每個(gè)構(gòu)建平臺(tái)使用所述共享磁盤上的所述代碼進(jìn)行構(gòu)建工作。

      步驟108,在確定所述多個(gè)構(gòu)建平臺(tái)中的任一構(gòu)建平臺(tái)構(gòu)建完成時(shí),將所述任一構(gòu)建平臺(tái)構(gòu)建完成的信號(hào)發(fā)送給部署服務(wù)器,以供所述部署服務(wù)器根據(jù)所述信號(hào)將所述任一構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件發(fā)送到所述共享磁盤上的與所述任一構(gòu)建平臺(tái)對(duì)應(yīng)的目錄中。

      在該技術(shù)方案中,通過將檢出的代碼存放在共享磁盤上,以實(shí)現(xiàn)代碼的統(tǒng)一管理。并且統(tǒng)一為每個(gè)構(gòu)建平臺(tái)設(shè)置構(gòu)建參數(shù)和環(huán)境配置參數(shù),以使不支持版本控制工具的構(gòu)建平臺(tái)能夠直接從共享磁盤上獲取代碼進(jìn)行構(gòu)建工作,在構(gòu)建完成時(shí),通過部署服務(wù)器將每個(gè)構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件發(fā)送到共享磁盤上的與每個(gè)構(gòu)建平臺(tái)對(duì)應(yīng)的目錄中。通過以上技術(shù)方案,將版本控制工具與構(gòu)建平臺(tái)分離,避免了開發(fā)人員由于某些構(gòu)建平臺(tái)不支持版本控制工具而修改代碼,以及避免了代碼在構(gòu)建平臺(tái)上反復(fù)傳輸,從而提高了使用代碼進(jìn)行構(gòu)建工作的效率。而且相比于現(xiàn)有技術(shù)而言,大大簡(jiǎn)化了使用代碼進(jìn)行構(gòu)建工作的步驟,從而降低了構(gòu)建時(shí)的出錯(cuò)概率。

      該技術(shù)方案中的軟件構(gòu)建方法可用于構(gòu)建主機(jī),通過構(gòu)建主機(jī)上的版本控制工具檢出代碼,以使版本控制工具與構(gòu)建平臺(tái)分離,實(shí)現(xiàn)代碼的統(tǒng)一檢出與管理,從而使得不支持版本控制工具的構(gòu)建平臺(tái)能夠進(jìn)行構(gòu)建工作。

      在上述任一技術(shù)方案中,優(yōu)選地,所述共享磁盤掛載到所述多個(gè)構(gòu)建平臺(tái)的路徑相同。

      在該技術(shù)方案中,共享磁盤掛載到多個(gè)構(gòu)建平臺(tái)的路徑均相同,從而避免配置各個(gè)構(gòu)建平臺(tái)與共享磁盤之間的路徑,進(jìn)而進(jìn)一步地簡(jiǎn)化了構(gòu)建的步驟,保證了構(gòu)建效率。

      在上述任一技術(shù)方案中,優(yōu)選地,所述檢出代碼的步驟包括:判斷所述多個(gè)構(gòu)建平臺(tái)中的每?jī)蓚€(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間是否存在沖突;若所述多個(gè)構(gòu)建平臺(tái)中的其中兩個(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間存在沖突,則為所述多個(gè)構(gòu)建平臺(tái)檢出多份所述代碼,其中,所述多個(gè)構(gòu)建平臺(tái)與多個(gè)所述代碼一一對(duì)應(yīng);若所述每?jī)蓚€(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間均不存在沖突,則為所述多個(gè)構(gòu)建平臺(tái)檢出一份所述代碼。

      在該技術(shù)方案中,若多個(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間存在沖突,則分別為每個(gè)構(gòu)建平臺(tái)檢出一份代碼,以使每個(gè)構(gòu)建平臺(tái)使用其對(duì)應(yīng)的代碼進(jìn)行構(gòu)建工作,從而避免構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件之間存在沖突。

      在上述任一技術(shù)方案中,優(yōu)選地,在為所述多個(gè)構(gòu)建平臺(tái)檢出多份所述代碼的情況下,所述軟件構(gòu)建方法還包括:將每份所述代碼存儲(chǔ)到所述共享磁盤上與其對(duì)應(yīng)的目錄中,每份所述代碼存儲(chǔ)的目錄的名稱與所述代碼對(duì)應(yīng)的構(gòu)建平臺(tái)的名稱一致。

      在該技術(shù)方案中,通過將多份代碼分別存儲(chǔ)到不同的目錄中,且每份代碼存儲(chǔ)的目錄的名稱是該代碼對(duì)應(yīng)的構(gòu)建平臺(tái)的名稱,以使存儲(chǔ)不同的代碼的目錄之間能夠區(qū)分。

      在上述任一技術(shù)方案中,優(yōu)選地,所述共享磁盤為網(wǎng)絡(luò)文件系統(tǒng)(NFS,Network File System)的共享磁盤或者磁盤陣列。

      在該技術(shù)方案中,利用NFS的共享磁盤或者磁盤陣列對(duì)代碼進(jìn)行存儲(chǔ),可以保證存儲(chǔ)資源的充分利用。其中,磁盤陣列(Redundant Arrays of Independent Disks,RAID)包括但不限于RAID 0、RAID 1、RAID 0+1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 6、RAID 7、RAID 10、RAID 53。

      圖2示出了根據(jù)本發(fā)明的另一個(gè)實(shí)施例的軟件構(gòu)建方法的流程示意圖。

      如圖2所示,根據(jù)本發(fā)明的另一個(gè)實(shí)施例的軟件構(gòu)建方法,包括:

      步驟202,構(gòu)建主機(jī)通過版本控制工具進(jìn)行代碼檢出,并且代碼檢出的物理位置為NFS(網(wǎng)絡(luò)文件系統(tǒng))的共享磁盤。

      步驟204,構(gòu)建主機(jī)解析多個(gè)構(gòu)建平臺(tái)。

      步驟206,構(gòu)建主機(jī)生成每個(gè)構(gòu)建平臺(tái)的構(gòu)建參數(shù),并設(shè)置每個(gè)構(gòu)建平臺(tái)的構(gòu)建參數(shù)。

      步驟208,構(gòu)建主機(jī)生成每個(gè)構(gòu)建平臺(tái)的環(huán)境配置參數(shù),并設(shè)置每個(gè)構(gòu)建平臺(tái)的環(huán)境配置參數(shù)。

      步驟210,構(gòu)建主機(jī)分別調(diào)用多個(gè)構(gòu)建平臺(tái),以使多個(gè)構(gòu)建平臺(tái)分別進(jìn)行構(gòu)建工作。具體地,構(gòu)建平臺(tái)1使用NFS(網(wǎng)絡(luò)文件系統(tǒng))的共享磁盤上存儲(chǔ)的代碼進(jìn)行構(gòu)建工作,構(gòu)建平臺(tái)2使用NFS(網(wǎng)絡(luò)文件系統(tǒng))的共享磁盤上存儲(chǔ)的代碼進(jìn)行構(gòu)建工作,構(gòu)建平臺(tái)3使用NFS(網(wǎng)絡(luò)文件系統(tǒng))的共享磁盤上存儲(chǔ)的代碼進(jìn)行構(gòu)建工作,構(gòu)建平臺(tái)4使用NFS(網(wǎng)絡(luò)文件系統(tǒng))的共享磁盤上存儲(chǔ)的代碼進(jìn)行構(gòu)建工作。其中,構(gòu)建平臺(tái)1、構(gòu)建平臺(tái)2、構(gòu)建平臺(tái)3和構(gòu)建平臺(tái)4是并行執(zhí)行構(gòu)建工作。

      步驟212,在確定多個(gè)構(gòu)建平臺(tái)中的任一構(gòu)建平臺(tái)構(gòu)建完成時(shí),將任一構(gòu)建平臺(tái)構(gòu)建完成的信號(hào)發(fā)送給部署服務(wù)器,以供部署服務(wù)器根據(jù)該信號(hào)將任一構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件發(fā)送到共享磁盤上的與任一構(gòu)建平臺(tái)對(duì)應(yīng)的目錄中。

      步驟214,打包部署結(jié)果文件。

      圖3示出了根據(jù)本發(fā)明的實(shí)施例的各構(gòu)建平臺(tái)執(zhí)行的構(gòu)建步驟的流程示意圖。

      如圖3所示,根據(jù)本發(fā)明的實(shí)施例的各構(gòu)建平臺(tái)執(zhí)行的構(gòu)建步驟包括:

      步驟302,構(gòu)建平臺(tái)解析構(gòu)建參數(shù)和環(huán)境配置參數(shù)。

      步驟304,生成構(gòu)建指令。

      步驟306,根據(jù)構(gòu)建指令,使用NFS(網(wǎng)絡(luò)文件系統(tǒng))的共享磁盤上存儲(chǔ)的代碼進(jìn)行構(gòu)建工作。

      步驟308,判斷是否構(gòu)建成功,在構(gòu)建成功時(shí),執(zhí)行步驟310,在構(gòu)建失敗時(shí),執(zhí)行步驟312。

      步驟310,發(fā)送構(gòu)建的結(jié)果文件,例如,將構(gòu)建的結(jié)果文件發(fā)送給相關(guān)的測(cè)試人員。

      步驟312,異常處理,例如,若構(gòu)建平臺(tái)所在的主機(jī)掉線,則檢查主機(jī)的情況,若構(gòu)建錯(cuò)誤(與代碼無(wú)關(guān)),則檢查構(gòu)建腳本,修復(fù)構(gòu)建計(jì)劃,若構(gòu)建錯(cuò)誤(與代碼有關(guān)),則反饋給開發(fā)人員。

      在一個(gè)實(shí)施例中,各構(gòu)建平臺(tái)執(zhí)行的構(gòu)建步驟可以通過shell或perl腳本實(shí)現(xiàn)。

      圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件構(gòu)建裝置的結(jié)構(gòu)示意圖。

      如圖4所示,根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件構(gòu)建裝置400,包括:代碼檢出單元402、設(shè)置單元404、調(diào)用單元406和發(fā)送單元408。

      代碼檢出單元402,用于通過版本控制工具檢出代碼,且所述代碼檢出的物理位置為共享磁盤;設(shè)置單元404,用于對(duì)多個(gè)構(gòu)建平臺(tái)進(jìn)行解析,來(lái)設(shè)置所述多個(gè)構(gòu)建平臺(tái)中的每個(gè)構(gòu)建平臺(tái)的構(gòu)建參數(shù)和環(huán)境配置參數(shù);調(diào)用單元406,用于調(diào)用所述每個(gè)構(gòu)建平臺(tái),以使所述每個(gè)構(gòu)建平臺(tái)使用所述共享磁盤上的所述代碼進(jìn)行構(gòu)建工作;以及發(fā)送單元408,用于在確定所述多個(gè)構(gòu)建平臺(tái)中的任一構(gòu)建平臺(tái)構(gòu)建完成時(shí),將所述任一構(gòu)建平臺(tái)構(gòu)建完成的信號(hào)發(fā)送給部署服務(wù)器,以供所述部署服務(wù)器根據(jù)所述信號(hào)將所述任一構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件發(fā)送到所述共享磁盤上的與所述任一構(gòu)建平臺(tái)對(duì)應(yīng)的目錄中。

      在該技術(shù)方案中,通過將檢出的代碼存放在共享磁盤上,以實(shí)現(xiàn)代碼的統(tǒng)一管理。并且統(tǒng)一為每個(gè)構(gòu)建平臺(tái)設(shè)置構(gòu)建參數(shù)和環(huán)境配置參數(shù),以使不支持版本控制工具的構(gòu)建平臺(tái)能夠直接從共享磁盤上獲取代碼進(jìn)行構(gòu)建工作,在構(gòu)建完成時(shí),通過部署服務(wù)器將將每個(gè)構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件發(fā)送到共享磁盤上的與每個(gè)構(gòu)建平臺(tái)對(duì)應(yīng)的目錄中。通過以上技術(shù)方案,將版本控制工具與構(gòu)建平臺(tái)分離,避免了開發(fā)人員由于某些構(gòu)建平臺(tái)不支持版本控制工具而修改代碼,以及避免了代碼在構(gòu)建平臺(tái)上反復(fù)傳輸,從而提高了使用代碼進(jìn)行構(gòu)建工作的效率。而且相比于現(xiàn)有技術(shù)而言,大大簡(jiǎn)化了使用代碼進(jìn)行構(gòu)建工作的步驟,從而降低了構(gòu)建時(shí)的出錯(cuò)概率。

      該技術(shù)方案中的軟件構(gòu)建裝置可用于構(gòu)建主機(jī),通過構(gòu)建主機(jī)上的版本控制工具檢出代碼,以使版本控制工具與構(gòu)建平臺(tái)分離,從而使得不支持版本控制工具的構(gòu)建平臺(tái)能夠進(jìn)行構(gòu)建工作。

      在上述任一技術(shù)方案中,優(yōu)選地,所述共享磁盤掛載到所述多個(gè)構(gòu)建平臺(tái)的路徑相同。

      在該技術(shù)方案中,共享磁盤掛載到多個(gè)構(gòu)建平臺(tái)的路徑均相同,從而避免配置各個(gè)構(gòu)建平臺(tái)與共享磁盤之間的路徑,進(jìn)而進(jìn)一步地簡(jiǎn)化了構(gòu)建的步驟,保證了構(gòu)建效率。

      在上述任一技術(shù)方案中,優(yōu)選地,所述代碼檢出單元402包括:判斷子單元4022,用于判斷所述多個(gè)構(gòu)建平臺(tái)中的每?jī)蓚€(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間是否存在沖突;檢出子單元4024,用于若所述多個(gè)構(gòu)建平臺(tái)中的其中兩個(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間存在沖突,則為所述多個(gè)構(gòu)建平臺(tái)檢出多份所述代碼,其中,所述多個(gè)構(gòu)建平臺(tái)與多個(gè)所述代碼一一對(duì)應(yīng);所述檢出子單元4024還用于,若所述每?jī)蓚€(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間均不存在沖突,則為所述多個(gè)構(gòu)建平臺(tái)檢出一份所述代碼。

      在該技術(shù)方案中,若多個(gè)構(gòu)建平臺(tái)待構(gòu)建的結(jié)果文件之間存在沖突,則分別為每個(gè)構(gòu)建平臺(tái)檢出一份代碼,以使每個(gè)構(gòu)建平臺(tái)使用其對(duì)應(yīng)的代碼進(jìn)行構(gòu)建工作,從而避免構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件之間存在沖突。

      另外,在檢出多份代碼的情況下,將多份代碼存放在共享磁盤上的不同目錄中,目錄名稱以構(gòu)建平臺(tái)的名稱進(jìn)行區(qū)分。

      在上述任一技術(shù)方案中,優(yōu)選地,所述共享磁盤為網(wǎng)絡(luò)文件系統(tǒng)(NFS,Network File System)的共享磁盤或者磁盤陣列。

      在該技術(shù)方案中,利用NFS的共享磁盤或者磁盤陣列對(duì)代碼進(jìn)行存儲(chǔ),可以保證存儲(chǔ)資源的充分利用。其中,磁盤陣列(Redundant Arrays of Independent Disks,RAID)包括但不限于RAID 0、RAID 1、RAID 0+1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 6、RAID 7、RAID 10、RAID 53。

      圖5示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件構(gòu)建系統(tǒng)的結(jié)構(gòu)示意圖。

      如圖5所示,根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件構(gòu)建系統(tǒng)500,包括:構(gòu)建主機(jī)502(在構(gòu)建主機(jī)502上部署有圖4實(shí)施例中的軟件構(gòu)建裝置400和版本控制工具)、NFS(網(wǎng)絡(luò)文件系統(tǒng))格式的共享磁盤504、多個(gè)構(gòu)建平臺(tái)(例如構(gòu)建平臺(tái)A506、構(gòu)建平臺(tái)B508和構(gòu)建平臺(tái)C510)和部署服務(wù)器512。構(gòu)建主機(jī)502上部署的軟件構(gòu)建裝置用于執(zhí)行如下步驟:通過版本控制工具檢出代碼,且代碼檢出的物理位置為NFS格式的共享磁盤504;對(duì)多個(gè)構(gòu)建平臺(tái)(例如構(gòu)建平臺(tái)A506、構(gòu)建平臺(tái)B508和構(gòu)建平臺(tái)C510)進(jìn)行解析,來(lái)設(shè)置構(gòu)建平臺(tái)A506、構(gòu)建平臺(tái)B508和構(gòu)建平臺(tái)C510的構(gòu)建參數(shù)和環(huán)境配置參數(shù);調(diào)用構(gòu)建平臺(tái)A506、構(gòu)建平臺(tái)B508和構(gòu)建平臺(tái)C510,以使每個(gè)構(gòu)建平臺(tái)使用NFS格式的共享磁盤504上的代碼進(jìn)行構(gòu)建工作(例如通過ssh remote_hostname build來(lái)執(zhí)行構(gòu)建工作);以及在確定構(gòu)建平臺(tái)A506、構(gòu)建平臺(tái)B508和構(gòu)建平臺(tái)C510中的任一構(gòu)建平臺(tái)構(gòu)建完成時(shí),將該任一構(gòu)建平臺(tái)構(gòu)建完成的信號(hào)發(fā)送給部署服務(wù)器,以供部署服務(wù)器512根據(jù)該信號(hào)將上述中的任一構(gòu)建平臺(tái)構(gòu)建出的結(jié)果文件發(fā)送到NFS格式的共享磁盤504上的與上述中的任一構(gòu)建平臺(tái)對(duì)應(yīng)的目錄中。

      在上述任一技術(shù)方案中,優(yōu)選地,NFS格式的共享磁盤504掛載到多個(gè)構(gòu)建平臺(tái)的路徑相同。

      在上述任一技術(shù)方案中,優(yōu)選地,構(gòu)建主機(jī)502上部署的軟件構(gòu)建裝置還用于,在檢出代碼之前,分別配置多個(gè)構(gòu)建平臺(tái)中的每個(gè)構(gòu)建平臺(tái)的hostname,并將每個(gè)構(gòu)建平臺(tái)的hostname和IP加入到/etc/hosts中;以及建立與每個(gè)構(gòu)建平臺(tái)和部署服務(wù)器512的連接,以使軟件構(gòu)建裝置根據(jù)/etc/hosts執(zhí)行遠(yuǎn)程的構(gòu)建調(diào)度工作。

      在以上技術(shù)方案中,當(dāng)構(gòu)建平臺(tái)不支持版本控制工具時(shí),構(gòu)建主機(jī)502將檢出的代碼存儲(chǔ)在NFS格式的共享磁盤504上,并自動(dòng)產(chǎn)生針對(duì)不同的構(gòu)建平臺(tái)的構(gòu)建參數(shù)和環(huán)境配置參數(shù),由于所有的配置、調(diào)度、部署工作都在構(gòu)建主機(jī)502上執(zhí)行,并不是在各個(gè)構(gòu)建平臺(tái)上執(zhí)行,各個(gè)構(gòu)建平臺(tái)只需執(zhí)行構(gòu)建即可。如再深入一些,可以借助開源的持續(xù)集成工具(如jenkins)來(lái)搭建全自動(dòng)化的構(gòu)建平臺(tái)。

      以上結(jié)合附圖詳細(xì)說明了本發(fā)明的技術(shù)方案,通過本發(fā)明的技術(shù)方案,使得不支持版本控制工具的構(gòu)建平臺(tái)可以更加方便快捷地使用代碼進(jìn)行構(gòu)建工作,從而提高構(gòu)建效率。

      以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1