我想將Jenkins與UCM ClearCase環境集成,並且在構建過程中遇到問題。Jenkins ClearCase UCM插件檢索更改錯誤
首先,我在我的集成流上創建了一個推薦的基準,並在我的開發流中重新命名了這一基準。
我詹金斯作業對我的集成流和投票配置的「子流」
我在文件中添加一個「#」做出一點改變和調查後觸發構建。在更改之後,我創建了將由插件檢測到的基線。
這似乎正常工作,直到這導致構建失敗的錯誤:
[CCUCM] Getting snapshotview
[CCUCM] Updating view using all modules.
java.io.IOException: Error while retrieving changes
at net.praqma.hudson.remoting.deliver.GetChanges.invoke(GetChanges.java:49)
at net.praqma.hudson.remoting.deliver.GetChanges.invoke(GetChanges.java:21)
at hudson.FilePath.act(FilePath.java:981)
at hudson.FilePath.act(FilePath.java:959)
at net.praqma.hudson.scm.CCUCMScm.generateChangeLog(CCUCMScm.java:563)
at net.praqma.hudson.scm.CCUCMScm.checkout(CCUCMScm.java:246)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1265)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:622)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:528)
at hudson.model.Run.execute(Run.java:1759)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:89)
at hudson.model.Executor.run(Executor.java:240)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1949)
at java.lang.String.substring(String.java:1916)
at net.praqma.clearcase.ucm.entities.Activity$Parser.parse(Activity.java:275)
at net.praqma.hudson.remoting.deliver.GetChanges.invoke(GetChanges.java:43)
... 13 more
Processing baseline
[CCUCM] Build result: FAILURE
[CCUCM] Cancelling the deliver. Cancelling
Failed.
[CCUCM] Performing common post build steps
[CCUCM] Build failed.
,如果我沒有創建一個變化後的新的基準和我在「初始」級別更改舊的基準,構建成功,但由於舊基線不包含上次更改,因此不會提供更改。
有人對此問題有所瞭解嗎?
Jenkins ClearCase UCM插件在作業工作區中創建了一個快照視圖,但我不完全明白它在構建時的作用觸發。當Jenkins在我的開發流中檢測到新基線時,似乎他正在掃描集成流工作區,但未檢測到在集成中交付它們的開發流更改。你有什麼jenkins配置在子流查詢時正在做什麼的想法? – Billyjones 2015-02-11 12:54:51
通常,它會執行從源流到目標流的「cleartool遞送基礎」。您是否檢查過源流上基線的提升級別?它處於拒絕級別,插件不應執行交付。此外,如果您可以訪問更多的日誌以查看完成的情況,那就太好了。除了Jenkins日誌,您可能還想檢查Clearcase日誌。它們可以在/ var/adm/atria/log(適用於Linux/Unix)中找到。您必須在view_server日誌的視圖服務器上查看它們。 vob服務器上的albd_log也很有用。 – iclman 2015-02-11 20:04:48
當我在此更改之後執行更改和「cleartool mkbl」時,在發生更改的組件上創建的基線處於INITIAL級別。 Jenkins正在檢測這個基線,但不能像控制檯輸出中所說的那樣「檢索更改」。在日誌記錄中,插件似乎希望取消不存在的傳遞,以便引發錯誤。我在這段代碼中發現了錯誤信息:https://github.com/jenkinsci/clearcase-ucm-plugin/blob/master/src/main/java/net/praqma/hudson/remoting/deliver/GetChanges.java,但是我可以檢索可觸發異常的內容。 – Billyjones 2015-02-16 10:19:09