云效这样的方式 job_3是无法获取 job_1和2 构建后的产物吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
是的,根据您提供的代码片段,job_3 无法获取 job_1 和 job_2 构建后的产物。在您的配置中,job_3 依赖于 job_1 和 job_2 的成功执行,但是条件表达式 succeed(job_1)11succeed(job_2)
存在语法错误,应该是 succeeds(job_1) and succeeds(job_2)
。
正确的配置应该如下所示:
jobs:
job_1:
name: 任务1
job_2:
name: 任务2
job_3:
name: 任务3
needs:
- job_1
- job_2
condition: succeeds(job_1) and succeeds(job_2)
这样,只有当 job_1 和 job_2 都成功执行时,job_3 才会被触发执行。
您可以参考下我的这个yaml,看看您是不是哪里配置不太对呢
stages:
build_stage:
name: 构建
jobs:
job1:
name: "执行命令"
steps:
command_step:
name: "执行命令"
step: "Command"
with:
run: |
touch test.sh
upload_step:
step: ArtifactUpload
name: 构建物上传
with:
uploadType: flowPublic
artifact: Artifacts_job1
filePath: # 打包路径,请填写相对工作目录的相对路径
- test.sh
includePathInArtifact: false # 值为true,则生成的压缩包中,包含完整的打包路径;否则仅包含文件。当选择了多个打包路径时,该值自动设置为true
job2:
name: "执行命令"
steps:
command_step:
name: "执行命令"
step: "Command"
with:
run: |
touch test.sh
exit 1
upload_step:
step: ArtifactUpload
name: 构建物上传
with:
uploadType: flowPublic
artifact: Artifacts_job2
filePath: # 打包路径,请填写相对工作目录的相对路径
- test.sh
includePathInArtifact: false # 值为true,则生成的压缩包中,包含完整的打包路径;否则仅包含文件。当选择了多个打包路径时,该值自动设置为true
job3:
name: "执行命令"
needs:
- job1
- job2
condition: succeed('job1') || succeed('job2')
steps:
command_step:
name: "执行命令"
step: "Command"
with:
run: |
echo job1_pkg=${job1_pkg}
echo job1_pkg2=${job1_pkg2}
echo job2_pkg=${job2_pkg}
echo job2_pkg2=${job2_pkg2}
variables:
- key: job1_pkg
value: $[stages.build_stage.job1.upload_step.artifacts.Artifacts_job1]
- key: job1_pkg2
value: $[jobs.job1.upload_step.artifacts.Artifacts_job1]
- key: job2_pkg
value: $[stages.build_stage.job2.upload_step.artifacts.Artifacts_job2]
- key: job2_pkg2
value: $[jobs.job2.upload_step.artifacts.Artifacts_job2] 此回答整理自钉群“云效交付域答疑群”
云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。