|
@@ -1,4 +1,85 @@
|
|
|
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
|
|
@@ -23,27 +104,37 @@ spec:
|
|
|
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}}"]
|
|
|
+ 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
|