2016-12-05 6 views
2

私はCIパイプラインとしてConcourseを使用しています。パイプラインは基本的にgitリソースからいくつかのファイルのrpmをビルドし、rpmを別のgitリポジトリに置きます。最初にレポを作成してコンコースパイプラインを走らせたとき、RPMは何の問題もなくレポに記録されました。その後のPutsは、以下のgitエラーで失敗しました。Concourse GITエラーがgitリソースに振り分けられる

> Identity added: /tmp/git-resource-private-key (/tmp/git-resource-private-key) 
To [email protected]:private/repo1.git 
! [rejected]  HEAD -> master (fetch first) 
error: failed to push some refs to '[email protected]:username/repo1.git' 
hint: Updates were rejected because the remote contains work that you do 
hint: not have locally. This is usually caused by another repository pushing 
hint: to the same ref. You may want to first integrate the remote changes 
hint: (e.g., 'git pull ...') before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

は、ここでは、常にoutputbuildに「最初のコミット」すること、およびその上にプッシュを強制しようとしているように見えます私のpipeline.yml

--- 
jobs: 
- name: job-build 
serial: true 
plan: 
- get: Inputbuild 
trigger: true 
- task: <task-name> 
config: 
    … 
    … 
    inputs: 
    - name: Inputbuild 
    outputs: 
    - name: outputbuild-dir 
    run: 
    path: Inputbuild/script.sh 
- put: outputbuild 
    params: {repository: outputbuild-dir} 

resources: 
- name: Inputbuild 
    type: git 
    source: 
    uri: [email protected]:username/repo.git 
    branch: master 
    private_key: {{private_github_key}} 

- name: outputbuild 
    type: git 
    source: 
    uri: [email protected]:username/repo1.git 
    branch: master 
    private_key: {{private_github_repo1_key}} 

答えて

1

です。

強制強制は現在git-resourceとの結合解除されたpull-requestです。

これを適切な方法で実行したい場合は、元のgitの履歴outputbuildに実際に基づいていることを確認する必要があります(すなわち、outputbuild-dir)。例えば歴史)

を変更:

--- 
jobs: 
- name: job-build 
    serial: true 
    plan: 
    - get: Inputbuild 
    trigger: true 
    - get: outputbuild 
    - task: build-artifacts 
    config: 
    … 
    inputs: 
    - name: Inputbuild 
    - name: outputbuild 
    outputs: 
    - name: outputbuild-dir 
    run: 
     path: /bin/bash #Inputbuild/script.sh 
     args: 
     - -c 
     - | 
     #!/bin/bash 

     rm outputbuild-dir 
     git clone outputbuild outputbuild-dir 
     # do stuff with inputbuild 
     # cp built artifacts into outputbuild-dir 
     cd outputbuild-dir 
     git add . 
     git commit -m "Update built artifacts" 
    - put: outputbuild 
    params: {repository: outputbuild-dir} 

resources: 
- name: Inputbuild 
    type: git 
    source: 
    uri: [email protected]:username/repo.git 
    branch: master 
    private_key: {{private_github_key}} 

- name: outputbuild 
    type: git 
    source: 
    uri: [email protected]:username/repo1.git 
    branch: master 
    private_key: {{private_github_repo1_key}} 
+0

はあなたに感謝します。これは私のために働いた! – user2051904

関連する問題