2016-10-19 44 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过程的无限循环。

相关问题