TWI774469B - 程式編譯管理系統與其作業方法 - Google Patents
程式編譯管理系統與其作業方法 Download PDFInfo
- Publication number
- TWI774469B TWI774469B TW110125441A TW110125441A TWI774469B TW I774469 B TWI774469 B TW I774469B TW 110125441 A TW110125441 A TW 110125441A TW 110125441 A TW110125441 A TW 110125441A TW I774469 B TWI774469 B TW I774469B
- Authority
- TW
- Taiwan
- Prior art keywords
- source code
- management system
- continuous integration
- compilation
- program
- Prior art date
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一種程式編譯管理系統與其作業方法,程式編譯管理系統包括一原始碼管理系統,其中設有一源碼庫,並提供使用者介面讓使用者可以存取源碼庫,程式編譯管理系統包括一持續整合系統,可通過呼叫程式自原始碼管理系統的源碼庫取得程式碼。如此,持續整合系統可將持續整合的作業邏輯置放在原始碼管理系統的源碼庫中,也能自源碼庫取得程式碼,並開始編譯,在一編譯程序中根據程式碼中的編譯啟動點執行其中作業邏輯的設定參數,再進行編譯。
Description
說明書提出一種程式編譯管理的方法,特別是指一種將持續整合系統中的作業邏輯置放於原始碼管理系統的源碼庫的程式編譯管理系統與其作業方法。
在開發軟體的過程中,除了原始檔案外,還會產生更多檔案,如二進位檔、組態檔,與編譯後的可執行檔等,包括各種版本管理,需要有一個管理辦法。
現行辦法例如Jenkins,這類持續整合(continuous integration,CI)系統提供從原始碼管理系統(source code management,SCM)抓取原始碼,持續整合系統根據各編譯專案的設定進行編譯及其他支援性的工作,例如拷貝編譯出來的檔案再傳送到特定伺服器,其作業邏輯分別分佈在持續整合系統及原始碼管理系統兩者,要完成一組作業需兩者系統設定配合,需要持續整合系統的運維人員及程式設計師相互合作才能完成。
然而,持續整合系統的運維人員和實際使用原始碼管理系統的程式設計師通常不是同一組人員,現行做法的缺點在於完成編譯專案需要兩組人互相溝通協調才能完成,增加了作業的複雜度及維護成本。
根據現行架構,大部分的編譯工作是在持續整合系統端進行的,可參考圖1顯示現行持續整合系統的運作流程圖。在持續整合系統端的設定包括先設定一個原始碼管理系統的源碼位置(如URL)(步驟S101),導出持續整合系統工作項的設定,這些設定無法從原始碼管理系統獲得,例如有版本編號,或是由使用者決定的事項(步驟S103),範例如圖2A所示,其中顯示設定參數如布林值201與字串參數203。
接著進行編寫程式碼的工作(步驟S105),範例如圖2B所示,程式碼中也會包含記錄各種元件的版本,並且包含一些額外的處理工作,例如對某些檔案加密,之後才開始正式編譯,編譯完成之後,需要做一些打包檔案、拷貝檔案的動作,在持續整合系統端的設定頁面上,還需要設定編譯結果的通知信件收件人,範例如圖2C顯示之示意圖,其中設定收件人的項目如專案收件人清單205與專案回覆清單207(步驟S107),最後進行編譯(步驟S109),再將編譯結果通知相關人員(步驟S111)。
揭露書提出一種程式編譯管理系統與其作業方法,所述程式編譯管理系統主要包括一原始碼管理系統以及一持續整合系統,其中原始碼管理系統具有一源碼庫,使用者可以通過外部電腦裝置存取原始碼管理系統的源碼庫;而持續整合系統連線原始碼管理系統時,可通過呼叫程式自原始碼管理系統的源碼庫取得程式碼。
其中特別的是,持續整合系統將持續整合的作業邏輯置放在原始碼管理系統的源碼庫中,持續整合系統自原始碼管理系統的源碼庫取得程式碼,並開始編譯,並在一編譯程序中根據程式碼中的編譯啟動點執行其中作業邏輯的設定參數,再進行編譯。
如此,將編譯作業邏輯置放於原始碼管理系統中,由程式設計師進行修改,讓程式設計師有最大控制權限,不需持續整合系統的運維人員協助,以減低溝通成本,優點是可以解決現行將作業邏輯分散在持續整合系統和原始碼管理系統兩邊造成運維成本偏高的問題。
進一步地,程式設計師可以通過持續整合系統提供的使用者介面將作業邏輯的設定參數寫入程式碼,作業邏輯至少包括設定原始碼管理系統的原始碼位置以及導出持續整合系統工作項目的設定。
根據程式編譯管理系統的作業方法實施例,持續整合系統通過呼叫程式自原始碼管理系統的源碼庫中讀取程式碼,接著自程式碼導出持續整合系統的作業邏輯的設定參數,因此,於持續整合系統中,可以一編譯程序讀取設定參數,並開始編譯程式碼,並在一編譯程序中根據程式碼中的編譯啟動點執行其中作業邏輯的設定參數,再進行編譯。
優選地,在讀取設定參數與開始編譯之間的前處理可包含取得原始碼版本、影像韌體版本以及/或編譯器版本。
優選地,在完成編譯程序後,可執行後處理,包括準備存放一編譯檔案的目錄、將編譯出來的檔案名稱改為需要的格式,以及/或通知相關人員編譯結果。
為使能更進一步瞭解本發明的特徵及技術內容,請參閱以下有關本發明的詳細說明與圖式,然而所提供的圖式僅用於提供參考與說明,並非用來對本發明加以限制。
以下是通過特定的具體實施例來說明本發明的實施方式,本領域技術人員可由本說明書所公開的內容瞭解本發明的優點與效果。本發明可通過其他不同的具體實施例加以施行或應用,本說明書中的各項細節也可基於不同觀點與應用,在不悖離本發明的構思下進行各種修改與變更。另外,本發明的附圖僅為簡單示意說明,並非依實際尺寸的描繪,事先聲明。以下的實施方式將進一步詳細說明本發明的相關技術內容,但所公開的內容並非用以限制本發明的保護範圍。
應當可以理解的是,雖然本文中可能會使用到“第一”、“第二”、“第三”等術語來描述各種元件或者信號,但這些元件或者信號不應受這些術語的限制。這些術語主要是用以區分一元件與另一元件,或者一信號與另一信號。另外,本文中所使用的術語“或”,應視實際情況可能包括相關聯的列出項目中的任一個或者多個的組合。
一般來說,在一個持續整合(CI)工作中,其中一部分為固定(或不常變動)的參數,不需要每次編譯而改變,例如檔案拷貝路徑、編譯時需要從原始碼之外取得的項目以及對元件加解密的參數等;另一部分則是每次工作會變動的參數,這部分程式可能是基於使用者需求不同或者是客觀條件需要改動,如撰寫程式中的邏輯以及編譯版本等。
為降低持續整合系統(CI)運維人員及程式設計師的溝通維護成本,揭露書提出一種程式編譯管理系統與其作業方法,這是一種基於持續整合系統的軟體架構,將持續整合的作業邏輯放在原始碼管理系統(SCM)的源碼庫中,此方式的優點可以解決現行將作業邏輯分散在持續整合系統和原始碼管理系統兩邊造成運維成本偏高的問題,所提出的程式編譯管理系統具有幾點特色,包括將編譯作業邏輯置放於原始碼管理系統中,由程式設計師(或特定使用者)進行修改,讓程式設計師有最大控制權限,不需習知持續整合系統的運維人員協助,以減低溝通成本;如此,持續整合系統的運維人員不需要具備不同案子編譯流程相關知識,降低對持續整合系統運維人員的專業知識需求;持續整合系統僅提供最低限度需要提供的資訊,可減低持續整合系統的運維成本。
程式編譯管理系統的架構實施例可參考圖3顯示的實施例示意圖。
圖示的程式編譯管理系統涵蓋一持續整合系統31與一原始碼管理系統33,兩者之間通過特定方式連線,如網路、直接線路等,並利用呼叫程式互相呼叫。根據實施例,持續整合系統31與原始碼管理系統33可以是一個伺服系統中的兩個軟體模組,或是由兩個分開的伺服系統所實現。持續整合系統31的軟體架構係將持續整合的作業邏輯置放在原始碼管理系統33的源碼庫37中,作業邏輯為編譯程式碼時的設定參數,屬於固定或不常變動的參數。在所述的程式編譯管理系統運作時,將設定參數寫入程式碼中,再儲存到源碼庫37中。
舉例來說,所述作業邏輯為固定或不常變動的參數,至少包括設定原始碼管理系統33的原始碼位置以及導出持續整合系統31工作項目的設定,這類參數不需要每次編譯而有變動,如此,可解決現行技術將作業邏輯分散在持續整合系統31和原始碼管理系統33兩邊造成運維成本偏高的問題。
進一步地,原始碼管理系統33的功能是管理軟體專案,包括儲存與持續整合自程式設計師上傳的程式碼,這部分一般為每次工作會變動的參數,運作時,程式設計書會應用圖式中的一電腦裝置35經持續整合系統31連線原始碼管理系統33。根據實施例,原始碼管理系統33提供一個管理平台,通過持續整合系統31提供使用者介面311,讓程式設計師可以直接在管理平台進行線上撰寫與編譯程式碼,還包括設定所述設定參數,即持續整合系統31的作業邏輯。
根據再一實施例,程式編譯管理系統的作業方法運作時,使用者以電腦裝置35經持續整合系統31登入原始碼管理系統33,並通過持續整合系統31所提供的使用者介面311編寫程式碼,之後,持續整合系統31通過呼叫程式自原始碼管理系統33的源碼庫37取得程式碼,並開始編譯,於一編譯程序中還根據程式碼中的編譯啟動點執行作業邏輯中的設定參數,再進行編譯。
持續整合系統31提供使用者介面311讓使用者(如程式設計師)可以通過電腦裝置連線持續整合系統31,再存取原始碼管理系統33中的源碼庫的程式碼,並從中讀取程式碼,可以離線(offline)或在線(online)撰寫程式碼,同時可在程式碼中的編譯啟動點置入持續整合的作業邏輯,如以各種設定參數編入程式碼中,如原始碼位置與導出持續整合系統工作項目的設定。
接著,如圖4所示程式編譯管理系統的作業方法實施例流程圖,在此作業流程中,持續整合系統自原始碼管理系統讀取原始碼(步驟S401),持續整合系統自原始碼導出關於持續整合系統作業邏輯的設定參數(步驟S403),接著呼叫編譯程序(步驟S405),通過編譯程序讀取設定參數(步驟S407),進行一前處理(步驟S409),之後即開始編譯程式碼(步驟S411),之後可進行後處理(步驟S413)。
根據實施例,在讀取設定參數與開始編譯之間的前處理包含但是不限於以下動作,根據需求下載額外的檔案或是編譯工具,例如影像韌體和編譯器,以取得編譯的相關條件,例如原始碼版本、影像韌體版本、編譯器版本等,這些版本可以重現整個編譯過程。
完成編譯程式碼後所執行的後處理包含但是不限於以下動作,例如準備存放編譯檔案的目錄、將編譯出來的檔案名稱改為需要的格式,以及通知相關人員編譯結果。在此一提的是,之後將完成編譯完的原始碼再次回存到原始碼管理系統的源碼庫,一併記錄日期、版本、相關人員等資訊,並且可以儲存不同的檔案位置。
在此一提的是,習知持續整合流程中持續整合系統與原始碼管理系統分別負責各自的工作程序,舉例來說,持續整合系統通常負責編譯程序前的前處理(例如上述拷貝編譯額外需要的檔案的動作)及後處理部分(例如將編譯好的檔案拷貝至另一處的動作),也就是負責處理原始碼管理系統編撰程式碼以外的工作,如拷貝額外檔案以及拷貝編譯好的檔案再由持續整合系統執行。持續整合系統也負責觸發執行編譯程式碼動作,編譯邏輯則依照原始碼管理系統導出資料執行。
上述程式編譯管理系統的操作介面實施例可參考圖5顯示之示意圖,圖中示意顯示布林值501與字串參數503等參數設定,顯示在揭露書提出之編譯管理系統的作業流程中,持續整合系統的作業邏輯通過原始碼管理系統提供的操作介面設定即可。
另一實施範例如圖6所示的編譯腳本操作介面示意圖,此例顯示在撰寫程式碼時,根據此範例,新的流程將工作項內將全部的設定項目移動至從原始碼管理系統取得的編譯程式「build_source_code.sh」中,持續整合系統端無需做其餘設置便能完成編譯工作,如此可大幅簡化持續整合系統需要做的設定項目。
綜上所述,根據以上實施例所描述的程式編譯管理系統與其作業方法,為降低持續整合系統(CI)運維人員及程式設計師的溝通維護成本,程式編譯管理系統將持續整合的作業邏輯放在原始碼管理系統(SCM)的源碼庫中,持續整合系統中的程序只設定抓取原始碼管理系統中資料的位置,提供編譯平台及提供必須的設定,並且由原始碼管理系統提供程式設計師修改持續整合的作業邏輯,因為將編譯邏輯及前後處理邏輯全部放在原始碼管理系統端,可有效加強持續整合系統與原始碼管理系統之間的作業效能,並降低運維成本。
以上所公開的內容僅為本發明的優選可行實施例,並非因此侷限本發明的申請專利範圍,所以凡是運用本發明說明書及圖式內容所做的等效技術變化,均包含於本發明的申請專利範圍內。
201:布林值
203:字串參數
205:專案收件人清單
207:專案回覆清單
31:持續整合系統
311:使用者介面
33:原始碼管理系統
35:電腦裝置
37:源碼庫
501:布林值
503:字串參數
步驟S101~S111:習知持續整合系統的運作流程
步驟S401~S413:資料傳輸流程
圖1顯示習知持續整合系統的運作流程圖;
圖2A至圖2C顯示習知持續整合系統頁面範例圖;
圖3顯示程式編譯管理系統的架構實施例示意圖;
圖4顯示程式編譯管理系統的作業方法實施例流程圖;
圖5顯示程式編譯管理系統的操作介面實施例示意圖之一;以及
圖6顯示程式編譯管理系統的操作介面實施例示意圖之二。
31:持續整合系統
33:原始碼管理系統
35:電腦裝置
37:源碼庫
311:使用者介面
Claims (10)
- 一種程式編譯管理系統,包括: 一原始碼管理系統,具有一源碼庫,提供使用者存取該源碼庫;以及 一持續整合系統,設有一使用者介面,連線該原始碼管理系統,並通過呼叫程式自該原始碼管理系統的該源碼庫取得程式碼; 其中,將該原始碼管理系統的該源碼庫包含持續整合的作業邏輯,該持續整合系統自該原始碼管理系統的該源碼庫取得程式碼,並開始編譯,在一編譯程序中根據程式碼中的編譯啟動點執行其中該作業邏輯的設定參數,再進行編譯。
- 如請求項1所述的程式編譯管理系統,其中該該使用者介面用以提供一使用者以一電腦裝置連線該持續整合系統以進行線上撰寫與編譯程式碼。
- 如請求項2所述的程式編譯管理系統,其中該使用者介面提供該使用者將該作業邏輯的設定參數寫入程式碼。
- 如請求項1至3中任一項所述的程式編譯管理系統,其中該原始碼管理系統與該持續整合系統為一個伺服系統中的兩個軟體模組,或是兩個分開的伺服系統。
- 如請求項4所述的程式編譯管理系統,其中置放在該原始碼管理系統的該源碼庫中的作業邏輯至少包括設定該原始碼管理系統的原始碼位置以及導出該持續整合系統工作項目的設定。
- 一種程式編譯管理系統的作業方法,其中該程式編譯管理系統包括一原始碼管理系統以及一持續整合系統,該作業方法包括: 該持續整合系統通過呼叫程式自該原始碼管理系統的一源碼庫中讀取一程式碼; 自該程式碼導出該持續整合系統的作業邏輯的設定參數;以及 於該持續整合系統中,以一編譯程序讀取設定參數,並開始編譯該程式碼,其中,在一編譯程序中根據該程式碼中的編譯啟動點執行其中該作業邏輯的設定參數,再進行編譯。
- 如請求項6所述的作業方法,其中,在讀取設定參數與開始編譯之間的一前處理包含取得一原始碼版本、一影像韌體版本以及/或一編譯器版本。
- 如請求項6所述的作業方法,其中,在完成該編譯程序後,包括一後處理,包括準備存放一編譯檔案的目錄、將編譯出來的檔案名稱改為需要的格式,以及/或通知相關人員編譯結果。
- 如請求項6所述的作業方法,其中該持續整合系統提供一使用者介面,用以提供一使用者以一電腦裝置連線該持續整合系統以進行線上撰寫與編譯程式碼,並通過該使用者介面提供該使用者將該作業邏輯的設定參數寫入程式碼。
- 如請求項6至9中任一項所述的作業方法,其中置放在該原始碼管理系統的該源碼庫中的作業邏輯至少包括設定該原始碼管理系統的原始碼位置以及導出該持續整合系統工作項目的設定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110125441A TWI774469B (zh) | 2021-07-12 | 2021-07-12 | 程式編譯管理系統與其作業方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110125441A TWI774469B (zh) | 2021-07-12 | 2021-07-12 | 程式編譯管理系統與其作業方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI774469B true TWI774469B (zh) | 2022-08-11 |
TW202303387A TW202303387A (zh) | 2023-01-16 |
Family
ID=83807241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110125441A TWI774469B (zh) | 2021-07-12 | 2021-07-12 | 程式編譯管理系統與其作業方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI774469B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201913374A (zh) * | 2017-08-21 | 2019-04-01 | 中華電信股份有限公司 | 微服務軟體開發基礎架構下自動化持續整合系統及其方法 |
CN111506304A (zh) * | 2020-04-21 | 2020-08-07 | 科大国创云网科技有限公司 | 一种基于参数配置的流水线构建方法及系统 |
CN111552644A (zh) * | 2020-04-28 | 2020-08-18 | 成都库珀区块链科技有限公司 | 一种基于微服务架构的软件持续集成方法 |
CN112817600A (zh) * | 2021-02-08 | 2021-05-18 | 广州方硅信息技术有限公司 | 程序注解编译方法及其相应的装置、设备、介质 |
-
2021
- 2021-07-12 TW TW110125441A patent/TWI774469B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201913374A (zh) * | 2017-08-21 | 2019-04-01 | 中華電信股份有限公司 | 微服務軟體開發基礎架構下自動化持續整合系統及其方法 |
CN111506304A (zh) * | 2020-04-21 | 2020-08-07 | 科大国创云网科技有限公司 | 一种基于参数配置的流水线构建方法及系统 |
CN111552644A (zh) * | 2020-04-28 | 2020-08-18 | 成都库珀区块链科技有限公司 | 一种基于微服务架构的软件持续集成方法 |
CN112817600A (zh) * | 2021-02-08 | 2021-05-18 | 广州方硅信息技术有限公司 | 程序注解编译方法及其相应的装置、设备、介质 |
Also Published As
Publication number | Publication date |
---|---|
TW202303387A (zh) | 2023-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9021419B2 (en) | System and method for supporting intelligent design pattern automation | |
CN106775744B (zh) | 一种生成静态库的方法和装置 | |
JPH07200313A (ja) | オープンプロセス制御システム | |
CN103853535A (zh) | 修改中间件的方法和装置 | |
CN105068853A (zh) | 渠道包的输出方法及装置 | |
JP2008276690A (ja) | 開発システム、開発システムのサーバ、開発方法 | |
Stevens | Connecting software build with maintaining consistency between models: towards sound, optimal, and flexible building from megamodels | |
TWI774469B (zh) | 程式編譯管理系統與其作業方法 | |
JPH04245545A (ja) | マルチ・ユーザ仮想計算機システム構成方法およびマルチ・ユーザ仮想計算機システム | |
CN110647349B (zh) | 一种实现iOS APP持续交付的方法 | |
JP6720993B2 (ja) | サポート装置およびサポートプログラム | |
CN101571801A (zh) | 业务扩展系统及方法 | |
CN115098158A (zh) | Sdk打包方法和装置、计算机设备及存储介质 | |
JP2014228990A (ja) | 制御プログラム作成装置および制御プログラム作成方法 | |
CN1476200A (zh) | 自动维护系统及其自动维护通信设备的方法 | |
JP2659264B2 (ja) | コマンドオプション指定処理装置 | |
JP2009098963A (ja) | モジュール自動生成システム | |
CN117687681B (zh) | 一种低代码应用的版本管理方法及系统 | |
EP4261678A1 (en) | Generation of a technical instruction | |
JP2005353092A (ja) | プロセス制御システム | |
CN117519779A (zh) | 异构rpa产品的流程调度方法及装置 | |
CN107632934A (zh) | 一种C‑sharp中函数复制方法及装置 | |
JP2000235496A (ja) | コンパイル処理方法、コンパイル処理装置、記録媒体およびクライアントサーバシステム | |
JP2022059478A (ja) | 情報処理装置、情報処理プログラム、および情報処理方法 | |
CN113934422A (zh) | 业务功能的执行方法和装置 |