diff --git a/test/e2e/functional/retry-with-artifacts.yaml b/test/e2e/functional/retry-with-artifacts.yaml new file mode 100644 index 000000000000..7aa5dcd37421 --- /dev/null +++ b/test/e2e/functional/retry-with-artifacts.yaml @@ -0,0 +1,40 @@ +# Verifies that retries with artifacts will propogate artifacts +apiVersion: argoproj.io/v1alpha1 +kind: Workflow +metadata: + generateName: retry-with-artifacts- +spec: + entrypoint: retry-with-artifacts + templates: + - name: retry-with-artifacts + steps: + - - name: generate-artifact + template: whalesay + - - name: consume-artifact + template: print-message + arguments: + artifacts: + - name: message + from: "{{steps.generate-artifact.outputs.artifacts.hello-art}}" + + - name: whalesay + retryStrategy: + limit: 4 + container: + image: docker/whalesay:latest + command: [sh, -c] + args: ["cowsay hello world | tee /tmp/hello_world.txt"] + outputs: + artifacts: + - name: hello-art + path: /tmp/hello_world.txt + + - name: print-message + inputs: + artifacts: + - name: message + path: /tmp/message + container: + image: alpine:latest + command: [sh, -c] + args: ["cat /tmp/message"] diff --git a/workflow/controller/operator.go b/workflow/controller/operator.go index b33fcece1161..e80e99f0cf76 100644 --- a/workflow/controller/operator.go +++ b/workflow/controller/operator.go @@ -284,6 +284,7 @@ func (woc *wfOperationCtx) processNodeRetries(node *wfv1.NodeStatus) error { if lastChildNode.Successful() { node.Outputs = lastChildNode.Outputs.DeepCopy() + woc.wf.Status.Nodes[node.ID] = *node woc.markNodePhase(node.Name, wfv1.NodeSucceeded) return nil }