apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: generateName: example-ci-workflow- namespace: argo labels: workflows.argoproj.io/archive-strategy: "false" annotations: workflows.argoproj.io/description: | This is a simple workflow to show what steps we need to take to deploy an application. spec: entrypoint: ci serviceAccountName: admin volumes: - name: shared-data emptyDir: {} templates: - name: ci dag: tasks: - name: git-clone template: simple-container arguments: parameters: [{name: message, value: "git-clone task completed"}] - name: ls template: ls dependencies: [git-clone] - name: build template: simple-container arguments: parameters: [{name: message, value: "build task completed"}] dependencies: [unit-tests, lint-scan] - name: unit-tests template: simple-container arguments: parameters: [{name: message, value: "unit-tests task completed"}] dependencies: [ls] - name: lint-scan template: simple-container arguments: parameters: [{name: message, value: "lint-scan task completed"}] dependencies: [ls] - name: trivy-image-scan template: simple-container arguments: parameters: [{name: message, value: "trivy-image-scan task completed"}] dependencies: [build] - name: trivy-filesystem-scan template: simple-container arguments: parameters: [{name: message, value: "trivy-filesystem-scan task completed"}] dependencies: [git-clone] - name: push-image template: simple-container arguments: parameters: [{name: message, value: "push-image task completed"}] # when: " == true" dependencies: [trivy-image-scan, trivy-filesystem-scan] - name: simple-container inputs: parameters: - name: message container: image: alpine:latest command: [sh, -c] args: ["echo {{inputs.parameters.message}}"] - name: ls container: image: alpine:latest command: [sh, -c] args: [ls /]