簡體   English   中英

使用 Jenkins 管道將文件夾從舊分支復制到 SCM 正在使用的分支中

[英]Using a Jenkins Pipeline copy a folder from an old branch into branch being used by SCM

我對管道很陌生,首先為我的公司嘗試,所以如果這個問題有點不對,請原諒。

我有一個 Git 分支,我們稱之為“2020Release38”,這是所有工程師簽入的中央分支。 我需要將舊分支“2019Release37”中的文件夾復制到工作區中,並將該文件夾重命名並放置在“2020Realease38”文件夾中。 此文件夾需要由管道中稍后調用的 exe 使用。 兩個分支都在同一個 Repo 中。

我嘗試使用自由式項目在管道之外進行此操作,設置多個 SCM 並將“2019Release37”與第二個 SCM 簽出到子目錄。 但是,這有效,A)它復制了分支的全部內容,B)在輪詢 SCM 時我不知道如何只查看“2020Release38”,以及 C)以某種方式(我確定是用戶錯誤)我創建了一個無休止的構建循環。 對我來說,這似乎是錯誤的,因為我不需要檢出文件夾而只需從分支復制即可。

任何幫助將不勝感激。 目前我已經完成了“2020Release38”分支管道腳本代碼,見下文。 不知道從這里去哪里,或者我是否應該使用不同的步驟來實現我正在尋找的東西。

checkout([$class: 'GitSCM', 
branches: [[name: '2020Release38']], 
doGenerateSubmoduleConfigurations: false, 
extensions: [], 
submoduleCfg: [], 
userRemoteConfigs: [[credentialsId: 'TFSBuildUser', url: 'https://some-url']]])

所以我知道您想從存儲庫中簽出某個分支“X”,將所有文件復制到另一個分支“A”,對嗎?

您可以使用git步驟簽出存儲庫並stash / unstash stash以復制文件:

git branch: 'X', url: 'my-git-url.git'
stash includes: 'foldername/**', name: 'oldFolder'
deleteDir()

git branch: 'A', url: 'my-git-url.git'
unstash "oldFolder"
sh "mv oldFolder newFolder"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM