apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: maven-pipeline
spec:
  workspaces:
    - name: shared-workspace
    - name: maven-settings
    - name: kubeconfig-dir
      optional: true
  params:
    - name: repo-url
    - name: revision
    - name: context-path
  tasks:
    - name: fetch-repo
      taskRef:
        name: git-clone
      workspaces:
        - name: output
          workspace: shared-workspace
      params:
        - name: url
          value: "$(params.repo-url)"
        - name: subdirectory
          value: ""
        - name: deleteExisting
          value: "true"
        - name: revision
          value: $(params.revision)
    - name: mvn-build
      taskRef:
        name: maven
      runAfter:
        - fetch-repo
      workspaces:
        - name: source
          workspace: shared-workspace
        - name: maven-settings
          workspace: maven-settings
      params:
        - name: CONTEXT_DIR
          value: "$(params.context-path)"
        - name: GOALS
          value: ["-DskipTests", "clean", "compile"]
    - name: mvn-tests
      taskRef:
        name: maven
      runAfter:
        - mvn-build
      workspaces:
        - name: source
          workspace: shared-workspace
        - name: maven-settings
          workspace: maven-settings
      params:
        - name: CONTEXT_DIR
          value: "$(params.context-path)"
        - name: GOALS
          value: ["test"]
    - name: mvn-package
      taskRef:
        name: maven
      runAfter:
        - mvn-tests
      workspaces:
        - name: source
          workspace: shared-workspace
        - name: maven-settings
          workspace: maven-settings
      params:
        - name: CONTEXT_DIR
          value: "$(params.context-path)"
        - name: GOALS
          value: ["package"]
    - name: create-image-and-deploy
      taskRef:
        name: openshift-client
      runAfter:
        - mvn-package
      workspaces:
        - name: manifest-dir
          workspace: shared-workspace
        - name: kubeconfig-dir
          workspace: kubeconfig-dir
      params:
        - name: SCRIPT
          value: |
            cd "$(params.context-path)"
            mkdir -p ./artifacts/deployments && cp ./target/*.war ./artifacts/deployments
            oc new-project helloworldproject
            oc project helloworldproject
            oc process -f jboss-eap70-binary-build.json | oc create -f -
            oc start-build eap-helloworld-app --from-dir=artifacts/
            oc new-app jboss-eap70-deploy.json 
apiVersion :  tekton.dev/v1beta1
kind :  Pipeline
metadata : 
  name :  maven- pipeline
spec : 
  workspaces : 
    -  name :  shared- workspace
    -  name :  maven- settings
    -  name :  kubeconfig- dir
      optional :  true 
  params : 
    -  name :  repo- url
    -  name :  revision
    -  name :  context- path
  tasks : 
    -  name :  fetch- repo
      taskRef : 
        name :  git- clone
      workspaces : 
        -  name :  output
          workspace :  shared- workspace
      params : 
        -  name :  url
          value :  "$(params.repo-url)" 
        -  name :  subdirectory
          value :  "" 
        -  name :  deleteExisting
          value :  "true" 
        -  name :  revision
          value :  $(params.revision)
    -  name :  mvn- build
      taskRef : 
        name :  maven
      runAfter : 
        -  fetch- repo
      workspaces : 
        -  name :  source
          workspace :  shared- workspace
        -  name :  maven- settings
          workspace :  maven- settings
      params : 
        -  name :  CONTEXT_DIR
          value :  "$(params.context-path)" 
        -  name :  GOALS
          value :  [ "-DskipTests" ,  "clean" ,  "compile" ] 
    -  name :  mvn- tests
      taskRef : 
        name :  maven
      runAfter : 
        -  mvn- build
      workspaces : 
        -  name :  source
          workspace :  shared- workspace
        -  name :  maven- settings
          workspace :  maven- settings
      params : 
        -  name :  CONTEXT_DIR
          value :  "$(params.context-path)" 
        -  name :  GOALS
          value :  [ "test" ] 
    -  name :  mvn- package
      taskRef : 
        name :  maven
      runAfter : 
        -  mvn- tests
      workspaces : 
        -  name :  source
          workspace :  shared- workspace
        -  name :  maven- settings
          workspace :  maven- settings
      params : 
        -  name :  CONTEXT_DIR
          value :  "$(params.context-path)" 
        -  name :  GOALS
          value :  [ "package" ] 
    -  name :  create- image- and- deploy
      taskRef : 
        name :  openshift- client
      runAfter : 
        -  mvn- package
      workspaces : 
        -  name :  manifest- dir
          workspace :  shared- workspace
        -  name :  kubeconfig- dir
          workspace :  kubeconfig- dir
      params : 
        -  name :  SCRIPT
          value :  | 
            cd "$(params.context-path)"
            mkdir -p ./artifacts/deployments && cp ./target/*.war ./artifacts/deployments
            oc new-project helloworldproject
            oc project helloworldproject
            oc process -f jboss-eap70-binary-build.json | oc create -f -
            oc start-build eap-helloworld-app --from-dir=artifacts/
            oc new-app jboss-eap70-deploy.json  
 
Copy to Clipboard 
Copied! 
 
   
   
 
 
 
Toggle word wrap 
Toggle overflow