云效这样的方式 job_3是无法获取 job_1和2 构建后的产物吗?

云效这样的方式 job_3是无法获取 job_1和2 构建后的产物吗?394ffbcfbc4ef03451c2843e33c61fab.png
617748dfae0427c1dd4d9401f575e642.png

展开
收起
三分钟热度的鱼 2023-11-15 20:20:56 51 分享 版权
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 才会被触发执行。

    2023-11-30 09:33:54
    赞同 展开评论
  • 您可以参考下我的这个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]  此回答整理自钉群“云效交付域答疑群”
    
    2023-11-15 20:26:57
    赞同 展开评论
问答分类:
问答地址:

云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。

还有其他疑问?
咨询AI助理