Ce n'est pas clair pour moi de la documentation s'il est même possible de passer la sortie d'un travail à un autre travail (pas de tâche en tâche, mais de travail en travail).
Je ne sais pas si conceptuellement je fais la bonne chose, peut-être que cela devrait être modélisé différemment dans Concourse, mais ce que j'essaie de réaliser, c'est d'avoir un pipeline pour Java projet divisé en plusieurs travaux granulaires, qui peuvent être exécutés en parallèle et déclenchés indépendamment si j'ai besoin de réexécuter un travail.
Comment je vois le pipeline:
mvn deploy
)SNAPSHOT
versions des sous-modules du projet Mavenoutput
du task
)jar
des output
Je n'ai pas pu passer le output
du travail 1 au travail 2. En outre, je suis curieux de savoir si des modifications que j'introduis dans la ressource git repo d'origine seront présentes dans le travail suivant (du travail 1 au travail 2) .
Les questions sont donc:
Ce que j'ai trouvé jusqu'à présent:
output
s ne sont pas transmis d'un travail à l'autreput
au référentiel github) sont récupérées dans le travail suivant, mais les modifications dans la copie de travail ne sont pasExemple minimal (il échoue si les lignes commentées ne sont pas commentées avec une erreur: 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
Répondre à vos questions une par une.
De plus, pour obtenir votre erreur spécifique, la raison pour laquelle vous voyez missing inputs
est parce que Concourse recherchera des répertoires (créés par la ressource gets
) nommés pour chacune de ces entrées. Vous devrez donc get
des instances de ressource nommées Gist-upd
et Gist-out
avant de commencer la tâche.