java - 大厅 CI + MVN
问题描述
我正在尝试使用 Maven 使用 Concourse CI 创建管道。管道应:
- 从 git 获取代码。
- 使用 maven 构建和运行测试。
- 该项目在目标文件夹中生成 html 报告
上述步骤正在正确执行。如何访问由maven项目生成的输出即目标文件夹的问题。
我无法访问生成的文件夹并复制到所需的文件夹以供以后使用。
文件管道.yml:
resources:
- name: branch-master
type: git
source:
uri: {{git-url}}
branch: master
jobs:
- name: MavenJob
serial: true
plan:
- get: branch-master
trigger: true
- task: mvn-test
privileged: true
file: branch-dev/AppDemo/test.yml
文件 test.yml:
platform: linux
image_resource:
type: docker-image
source:
repository: maven
tag: latest
inputs:
- name: branch-master
outputs:
- name: mvn-output
run:
path: "mvn"
args: ["-f", "branch-master/AppDemo/pom.xml", "test"]
请一些身体帮助我。
提前致谢。
解决方案
为了简单和明确起见,我将您的 git repo 重命名为project
. 假设它包含大厅的 yamls。并且有一个AppDemo
带有 java-maven 应用程序的目录
项目/管道.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 任务
项目/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:
项目/测试脚本.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>
希望这可以帮助
推荐阅读
- node.js - 如何检查 mocha-chai 中嵌套属性的类型?
- node.js - 每次我在文件中进行更改时,如何自动绑定 javascript 的客户端
- eclipse - Eclipse 市场无法正常工作。显示错误:找不到资源
- php - VSCode 的 intelephense 中未定义的类型“Imagick”
- javascript - 如何从 URL 中删除 # 和 Angular 构建和 nodejs 应用程序中的 404 重新加载问题?
- c++ - c++ 为服装类创建一个常量迭代器
- python - 如何在python中获取同名的键?
- typescript - 如何用打字稿的唯一区别来描述对象?
- azure - 如何使用 Azure AD 身份验证在 Azure webapp 中流式传输 kudu 日志?
- node.js - Node js 从 mongo db 中查找数据并使用 ejs 进行投影