{{ if has "gitlab" .Values.global.gitProviders }}
{{ if or ( .Values.pipelines.deployableResources.java.java8 ) ( .Values.pipelines.deployableResources.java.java11 ) ( .Values.pipelines.deployableResources.java.java17 )}}
{{- $raw := include "edp-tekton.resourceMapping.maven" . | fromYaml -}}
{{- $rawSonar := include "edp-tekton.resourceMapping.mavenSonar" . | fromYaml -}}
{{- range $framework, $image := $raw }}
{{- $sonarImage := pluck $framework $rawSonar | first -}}
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: gitlab-maven-{{ $framework }}-aut-build-default
  labels:
    app.edp.epam.com/pipelinetype: build
    {{- include "edp-tekton.labels" $ | nindent 4 }}
spec:
  description: "The Build pipeline for building {{ $framework }} automation tests with Maven (default versioning)"

  workspaces:
    - name: shared-workspace
    - name: ssh-creds

  params:
    - name: gitfullrepositoryname
      description: "repository full name"
      type: string
    - name: pipelineUrl
      default: https://portal-{{ $.Release.Namespace }}.{{ $.Values.global.dnsWildCard }}/c/main/pipelines/$(context.pipelineRun.namespace)/$(context.pipelineRun.name)
      type: string
    - name: git-source-url
      default: "https://github.com/sergk/spring-petclinic"
      description: git url to clone
      type: string
    - name: git-source-revision
      description: 'git revision to checkout (branch, tag, sha, ref…)'
      default: "edp"
      type: string
    - name: CODEBASE_NAME
      default: '{{ $framework }}-maven'
      description: "Project name"
      type: string
    - name: changeNumber
      description: Change number from Merge Request
      default: ""
      type: string
    - name: image
      default: '{{ $image }}'
      description: "maven image version"
      type: string
    - name: sonar_image
      default: '{{ $sonarImage }}'
      description: "sonar image version"
      type: string
    - name: COMMIT_MESSAGE
      description: "Commit message"
      default: ""
      
{{- include "build-result" $ | nindent 2 }}

  tasks:

{{- include "gitlab-build-start" $ | nindent 4 }}

    - name: get-version
      taskRef:
        kind: Task
        name: get-version-default
      runAfter:
        - init-values
      params:
        - name: BRANCH_NAME
          value: $(params.git-source-revision)
        - name: BASE_IMAGE
          value: $(params.image)

    - name: sonar
      taskRef:
        kind: Task
        name: sonarqube-maven
      runAfter:
        - get-version
      params:
        - name: SONAR_PROJECT_KEY
          value: $(params.CODEBASE_NAME)
        - name: SONAR_PROJECT_NAME
          value: $(params.CODEBASE_NAME)
        - name: MAVEN_IMAGE
          value: $(params.sonar_image)
        - name: EXTRA_COMMANDS
          value:
            - -B
            - '-Dsonar.projectKey=$(params.CODEBASE_NAME)'
            - '-Dsonar.projectName=$(params.CODEBASE_NAME)'
            - '-Dsonar.branch.name=$(params.git-source-revision)'
            - '-Dsonar.qualitygate.wait=true'
            - verify
            - sonar:sonar
      workspaces:
        - name: source
          workspace: shared-workspace

    - name: update-build-number
      taskRef:
        kind: Task
        name: maven
      runAfter:
        - sonar
      params:
        - name: MAVEN_IMAGE
          value: $(params.image)
        - name: GOALS
          value:
            - -B
            - versions:set
            - versions:commit
            - '-DnewVersion=$(tasks.get-version.results.VERSION)'
      workspaces:
        - name: source
          workspace: shared-workspace

    - name: git-tag
      taskRef:
        kind: Task
        name: git-cli
      runAfter:
        - update-build-number
      params:
        - name: GIT_USER_EMAIL
          value: edp-ci@edp.ci-user
        - name: GIT_USER_NAME
          value: edp-ci
        - name: GIT_SCRIPT
          value: |
            git tag -a "$(tasks.get-version.results.VCS_TAG)" -m "Tag is added automatically by CI user"
            git push --tags
      workspaces:
        - name: source
          workspace: shared-workspace
          subPath: source
        - name: ssh-directory
          workspace: ssh-creds
  
  finally:

{{ include "gitlab-build-vote" . | nindent 4 }}
---
{{ end }}
{{ end }}
{{ end }}
