Helix Core是Perforce公司旗下一款集源代碼管理和內容協作為一體的版本配置與管理工具,可以幫助您管理隨時間推移而產生的數字資產(代碼,文件等)變更,處理每天數以千萬計的傳輸,上千TB的數據,以及一萬多個併發提交。
Helix ALM是可追溯的端到端的軟件生命週期管理(ALM)工具,能夠掌握整個應用程序週期,確保按時發佈高質量的版本,滿足規定的標準。
通過集成Perforce Helix Core和Helix ALM,您將擁有完整的追溯能力——從需求,到源代碼,到測試,再到Bug。這樣的集成能給團隊帶來在整個開發過程中可以信任的、唯一的事實來源。
龍智技術專家團隊成員陳紅華以簡明扼要的方式呈現了Perforce Helix Core (P4V) 和Helix ALM的集成方法,方便中國用户參考使用。如需瞭解更多關於Perforce Helix Core和Helix ALM的相關信息,請聯繫Perforce授權合作伙伴——龍智。
Perforce Helix Core (P4V) 和Helix ALM的集成可以分為兩種方式,一種是從Helix ALM側進行,另一種是從Perforce Helix Core側以觸發器形式進行。任選一種即可。
Helix ALM中Attach Changlist或File
- 在Helix ALM設置Perforce Helix Core的參數
這一步驟在Helix ALM 客户端上操作設置,首先找到Tools > Source Control Integration Local Options,如下:
然後配置Perforce Helix Core的服務器賬號地址和Helix Swarm的URL(Helix Swarm是Perforce Helix Core配套的評審工具):
- 在Helix ALM中設置Perforce Helix Core提交時的默認註釋和事件
依然在Helix ALM客户端上操作設置,路徑為Tools > Administration > Source Control Integration Options...詳見下圖:
在彈出的窗口裏可以選擇一個提交代碼時需要觸發的事件。
- 將Perforce Helix Core的提交關聯到Helix ALM
例如:Helix ALM中有一個名為bug1的issue,可以將已提交的Changelist關聯到bug1的Source Files字段,也可以將工作區中的文件與bug1相關聯,在Helix ALM中進行Checkout,提交等。
説明:關聯文件需要在章節1這一步驟中設好工作區,關聯Changelist則不需要。
選擇了關聯的文件後,修改完成後,可以點擊Submit & Fix提交文件,並觸發章節2中的事件。
説明:事件要生效,需要滿足工作流條件,例如bug需要走到accept狀態,並且已經指派給了當前用户。
這裏bug1滿足了fix事件的執行條件,所以彈出一個fix事件對應的對話框,用於填寫相關內容。
為了方便查看代碼差異,也可以將提交的Changelist與bug1相關聯(關聯file和關聯Changelist互不影響)。
在Helix ALM中關聯的Changelist會顯示為到Helix Swarm的提交記錄鏈接。點擊後可以在Helix Swarm中看到本次提交具體修改的代碼行。
Perforce Helix Core側關聯Helix ALM裏的條目
可以在Perforce Helix Core側配置觸發器,在提交時自動關聯Helix ALM裏的條目。
配置需求:
- Helix ALM 2017.1或以上版本
- Helix ALM CGIs
- P4Python 可安裝3.6版 (Perforce Helix core側)
- Python3.5考慮到P4Python可以安裝3.6(Perforce Helix Core側)
配置步驟:
- 安裝Python3.6
[root@operation ~]# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
tar -xvJf Python-3.6.6.tar.xz
[root@operation ~]# cd Python-3.6.6
[root@operation Python-3.6.6]# ./configure prefix=/usr/local/python3
[root@operation Python-3.6.6]# make && make install
[root@operation Python-3.6.6]# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@operation bin]# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
[root@operation ~]# pip3 install --upgrade pip
- 下載觸發器腳本,並修改一些配置
腳本觸發器下載地址:https://swarm.workshop.perfor...
os.environ['P4TRUST']='/root/.p4trust'
EXTERNAL_PROVIDER_URL = 'http://192.168.80.58/cgi-bin/ttextpro.exe'
PROVIDER_KEY = '{bb2020d5-1245-43b3-9f7d-447158c0a4b3}:{29f02f83-6b6d-43e2-907d-0acbf40b7bfe}'
P4PORT = 'ssl:192.168.56.106:1666'
P4USER = 'fortrig'
P4PASSWD = '0D224A470F52DA1C536EWEB52854C6F5'
- Perforce Helix Core中添加以下兩行觸發器
check-ALM-item-exists-on-change change-submit //... "/usr/bin/python36 /opt/perforce/triggers/attachToHelixALM.py %changelist% verify"
attach-to-ALM-item-on-change change-commit //... "/usr/bin/python36 /opt/perforce/triggers/attachToHelixALM.py %changelist%"
- Perforce Helix Core提交時將Helix ALM的關鍵字寫在註釋裏。關鍵字分為三種,默認是IS-(Defects),TC-(測試用例),RQ-(需求)。
這裏指定一個[IS-1], 方括號是必須的,對應於Helix ALM中的一個defect:bug1。
[root@localhost 106_106ws]# p4 changes -m1
Change 1057 on 2021/07/09 by super@106_106ws ' [IS-1] test trigger '
提交成功後,在 Helix ALM側可以看到,提交記錄已經被自動關聯到了bug1:
- 可以點擊鏈接跳轉到 Helix Swarm中查看代碼差異:
參考鏈接:
1.https://help.perforce.com/hel...
2.https://help.perforce.com/hel...