Ради простоты и однозначности я переименовал ваше git репо в project
. Давайте предположим, что это содержит ямлы конкурса. И есть каталог AppDemo
с приложением java -maven
project / pipeline.yml:
resources:
- name: project
type: git
source:
uri: {{git-url}}
branch: master
jobs:
- name: MavenJob
serial: true
plan:
- get: project
trigger: true
- task: mvn-test
privileged: true
file: project/test.yml
, указанное выше задание должно найти и вызвать задачу test.yml
project / test.yml:
platform: linux
image_resource:
type: docker-image
source:
repository: maven # let's hope bin/bash is available there. if no, use sh
tag: latest
inputs:
- name: project # project is your git-repo. all paths are relative to it's location
outputs:
- name: mvn-output
run:
path: /bin/bash
args:
- project/test-script.sh:
project / test-script. sh:
_ROOT=$(pwd)
echo "starting test-script from directory: $ROOT"
cd _ROOT/AppDemo
mvn test
, если вы хотите передать результаты задания maven куда-нибудь дальше, затем вам нужно просто скопировать все эти файлы в каталог mvn-output
позже в скрипте.
Я бы также рекомендовал использовать этот bash -скрипт в качестве оболочки, а не в виде необработанного "вызова maven" - это более удобно для отладки весь процесс, как вы можете, например, повторяя пути.
в случае любой ошибки, если контейнер еще жив, попробуйте взломать его, чтобы посмотреть, что на самом деле там произошло и где находятся файлы:
fly -t <target> hijack -u <url-of-failed-job-from-your-browser>
надеюсь, это поможет