apiVersion: argoproj.io/v1alpha1 kind: WorkflowTemplate metadata: name: ci-workflow spec: inputs: parameters: - name: revision steps: - - name: build template: build-golang-example arguments: parameters: - name: revision value: "{{inputs.parameters.revision}}" # the test step expands into three parallel steps running # different operating system images. each mounts the workdir # and runs the compiled binary from the build step. - - name: test template: run-hello arguments: parameters: - name: os-image value: "{{item.image}}:{{item.tag}}" withItems: - { image: "debian", tag: "9.1" } - { image: "alpine", tag: "3.6" } - { image: "ubuntu", tag: "17.10" } --- apiVersion: argoproj.io/v1alpha1 kind: WorkflowTemplate metadata: name: build-golang-example spec: inputs: parameters: - name: revision artifacts: - name: code path: /go/src/github.com/golang/example git: repo: https://github.com/golang/example.git revision: "{{inputs.parameters.revision}}" container: image: golang:1.8 command: [sh, -c] args: [ " cd /go/src/github.com/golang/example/hello && git status && go build -v . ", ] volumeMounts: - name: workdir mountPath: /go --- apiVersion: argoproj.io/v1alpha1 kind: WorkflowTemplate metadata: name: run-hello spec: inputs: parameters: - name: os-image container: image: "{{inputs.parameters.os-image}}" command: [sh, -c] args: [ " uname -a ; cat /etc/os-release ; /go/src/github.com/golang/example/hello/hello ", ] volumeMounts: - name: workdir mountPath: /go --- apiVersion: argoproj.io/v1alpha1 kind: Sensor metadata: name: github spec: template: serviceAccountName: argo-events-sa dependencies: - name: test-dep gatewayName: github eventName: example subscription: http: port: 9300 triggers: - template: name: github-workflow-trigger k8s: group: argoproj.io version: v1alpha1 resource: workflows operation: create source: resource: apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: # generateName: github- generateName: ci-workflow- spec: serviceAccountName: workflow # entrypoint: whalesay entrypoint: ci-workflow workflowTemplateRef: name: ci-workflow # arguments: # parameters: # - name: message # # value will get overridden by the event payload # value: hello world # templates: # - name: whalesay # inputs: # parameters: # - name: message # container: # image: docker/whalesay:latest # command: [cowsay] # args: ["{{inputs.parameters.message}}"] parameters: - src: dependencyName: test-dep dest: spec.arguments.parameters.0.value # - template: # name: github-workflow-trigger # k8s: # group: argoproj.io # version: v1alpha1 # resource: workflows # operation: create # source: # resource: # apiVersion: argoproj.io/v1alpha1 # kind: Workflow # metadata: # generateName: github- # spec: # serviceAccountName: workflow # entrypoint: whalesay # arguments: # parameters: # - name: message # # value will get overridden by the event payload # value: hello world # templates: # - name: whalesay # inputs: # parameters: # - name: message # container: # image: docker/whalesay:latest # command: [cowsay] # args: ["{{inputs.parameters.message}}"] # parameters: # - src: # dependencyName: test-dep # dest: spec.arguments.parameters.0.value # --- daqui pra baixo # apiVersion: argoproj.io/v1alpha1 # kind: Sensor # metadata: # name: github # namespace: argo-events # spec: # template: # serviceAccountName: argo-events-sa # dependencies: # - name: test-dep # gatewayName: github # eventName: example # subscription: # http: # port: 9300 # triggers: # - template: # name: github-workflow-trigger # k8s: # group: argoproj.io # version: v1alpha1 # resource: workflows # operation: create # source: # resource: # apiVersion: argoproj.io/v1alpha1 # kind: Workflow # metadata: # generateName: github- # spec: # # serviceAccountName: workflow # entrypoint: whalesay # arguments: # parameters: # - name: message # # value will get overridden by the event payload # value: hello world # templates: # - name: whalesay # inputs: # parameters: # - name: message # container: # image: docker/whalesay:latest # command: [cowsay] # args: ["{{inputs.parameters.message}}"] # parameters: # - src: # dependencyName: test-dep # dest: spec.arguments.parameters.0.value # # triggers: # # - template: # # name: github-workflow-trigger # # k8s: # # group: argoproj.io # # version: v1alpha1 # # resource: workflows # # operation: create # # source: # # resource: # # apiVersion: argoproj.io/v1alpha1 # # kind: Workflow # # metadata: # # generateName: ci-workflow- # # spec: # # # ttlStrategy: # # # secondsAfterCompletion: 10 # Time to live after workflow is completed, replaces ttlSecondsAfterFinished # # # secondsAfterSuccess: 5 # Time to live after workflow is successful # # # secondsAfterFailure: 5 # Time to live after workflow fails # # serviceAccountName: workflow # # # entrypoint: ci-workflow # # # entrypoint is the name of the template used as the starting point of the workflow # # entrypoint: ci-workflow # # workflowTemplateRef: # # name: ci-workflow # # # the 'ci-workflow' template accepts an parameter 'revision', with a default of 'master'. # # # this can be overridden via argo CLI (e.g. `argo submit ci.yaml -p revision=0dea2d0`) # # arguments: # # parameters: # # - name: revision # # value: master # # # a temporary volume, named workdir, will be used as a working directory # # # for this workflow. This volume is passed around from step to step. # # volumeClaimTemplates: # # - metadata: # # name: workdir # # spec: # # accessModes: ["ReadWriteOnce"] # # resources: # # requests: # # storage: 1Gi # # parameters: # # - src: # # dependencyName: test-dep # # dest: spec.arguments.parameters.0.value