ドキュメント から、あるジョブの出力を別のジョブに渡すことが可能かどうかは明確ではありません(タスク間ではなく、ジョブ間)。
概念的に私が正しいことをしているのかどうかはわかりませんが、それはConcourseで別の方法でモデル化する必要があるかもしれませんが、私が達成しようとしているのはJavaプロジェクトをいくつかに分割することです並列実行可能な細かいジョブ。ジョブを再実行する必要がある場合は、独立してトリガーされます。
パイプラインの見方:
mvn deploy
)SNAPSHOT
バージョンを更新しますoutput
のtask
)にコピーしますjar
からoutput
をピックアップしますoutput
をジョブ1からジョブ2に渡すことができませんでした。また、元のgit repoリソースに加えた変更が次のジョブ(ジョブ1からジョブ2)にあるかどうか知りたいです。 。
だから質問は:
これまでに見つけたもの:
output
sはジョブからジョブに渡されませんput
からgithubリポジトリへ)は次のジョブでフェッチされますが、作業コピーの変更はフェッチされません最小限の例(コメント付きの行がエラーでコメント解除されている場合は失敗します:missing inputs: Gist-upd, Gist-out
):
---
resources:
- name: Gist
type: git
source:
uri: "[email protected]:snippets/foo/bar.git"
branch: master
private_key: {{private_git_key}}
jobs:
- name: update
plan:
- get: Gist
trigger: true
- task: update-Gist
config:
platform: linux
image_resource:
type: docker-image
source: {repository: concourse/bosh-cli}
inputs:
- name: Gist
outputs:
- name: Gist-upd
- name: Gist-out
run:
path: sh
args:
- -exc
- |
git config --global user.email "[email protected]"
git config --global user.name "Concourse"
git clone Gist gist-upd
cd Gist-upd
echo `date` > test
git commit -am "upd"
cd ../Gist
echo "foo" > test
cd ../Gist-out
echo "out" > test
- put: Gist
params: {repository: Gist-upd}
- name: fetch-updated
plan:
- get: Gist
passed: [update]
trigger: true
- task: check-Gist
config:
platform: linux
image_resource:
type: docker-image
source: {repository: Alpine}
inputs:
- name: Gist
#- name: Gist-upd
#- name: Gist-out
run:
path: sh
args:
- -exc
- |
ls -l Gist
cat Gist/test
#ls -l Gist-upd
#cat Gist-upd/test
#ls -l Gist-out
#cat Gist-out/test
一つ一つの質問に答えること。
また、特定のエラーを取得するために、missing inputs
が表示されるのは、コンコースがそれらの各入力に名前が付けられたディレクトリ(リソースgets
によって作成された)を探すためです。したがって、タスクを開始する前に、Gist-upd
およびGist-out
という名前のget
リソースインスタンスを作成する必要があります。