2016-10-19 45 views

回答

3

您正在查找的功能稱爲Artifacts。工件是在成功時附加到構建的文件。

爲了能夠把這個在您的.gitlab-ci.yml的神器:

artifacts: 
    paths: 
    - dir/ 
    - singlefile 

這將上傳dir目錄和文件singlefile回GitLab。

+1

但我真的想將文件作爲源文件推送到存儲庫。 – Venkat

+1

@VenkatGan但爲什麼?如果您將Runner的任何內容推送到存儲庫,您將再次啓動亞軍。這會導致無限循環。 – Fairy

+5

是的,它會開始一個無限循環。但是當我通過亞軍提交時,我使用'[skip ci]'關鍵字。通過這種方式,我可以消除無限循環。 – Venkat

4

生成gitlab一個SSH密鑰

- >配置文件設置 - > SSH密鑰 - >生成它

產生,在gitlab 變量命名SSH SSH密鑰存儲之後

- >項目設置 - >變量 - >添加變量

在.gitlab-ci.yml添加下面行。

before_script: 
    - mkdir -p ~/.ssh 
    - echo "$SSH" | tr -d '\r' > ~/.ssh/id_rsa 
    - chmod 600 ~/.ssh/id_rsa 
    - ssh-keyscan -H 'Git_Domain' >> ~/.ssh/known_hosts 

之後,使用下面的js代碼將文件推送到存儲庫。

var child_process = require("child_process"); 
child_process.execSync("git checkout -B 'Your_Branch'"); 
child_process.execSync("git remote set-url origin Your_Repository_Git_Url"); 
child_process.execSync("git config --global user.email 'Your_Email_ID'"); 
child_process.execSync("git config --global user.name 'Your_User_Name'"); 
for (var i=0;i<filesToBeAdded.length;i++) { 
      child_process.execSync("git add "+filesToBeAdded[i]); 
} 
var ciLog = child_process.execSync("git commit -m '[skip ci]Automated commit for CI'"); 
var pushLog = child_process.execSync("git push origin Your_Branch"); 

[跳過Cl]是在提交消息最​​重要的。否則,它將啓動CI過程的無限循環。

相關問題