charts/pipelines-library/templates/tasks/gradle.yaml (111 lines of code) (raw):

{{ if .Values.pipelines.deployableResources.tasks }} apiVersion: tekton.dev/v1 kind: Task metadata: name: gradle labels: app.kubernetes.io/version: "0.2" annotations: tekton.dev/pipelines.minVersion: "0.12.1" tekton.dev/displayName: Gradle tekton.dev/categories: Build Tools tekton.dev/tags: build-tool tekton.dev/platforms: "linux/amd64,linux/s390x,linux/ppc64le" spec: description: >- This task runs a Gradle build in a specified project directory with configurable integration for Nexus and SonarQube, using custom settings and extra build arguments. workspaces: - name: source description: The workspace consisting of the gradle project. volumes: - name: settings-gradle configMap: name: {{ .Values.tekton.configs.gradleConfigMap }} params: - name: BASE_IMAGE description: Gradle base image. type: string default: {{ include "edp-tekton.registry" . }}/gradle:7.6.1-jdk11 - name: PROJECT_DIR description: The directory containing build.gradle type: string default: "." - name: ci-nexus type: string description: name of the secret for the Nexus integration default: ci-nexus - name: ci-sonarqube type: string description: name of the secret for the Sonarqube integration default: "ci-sonarqube" - name: EXTRA_ARGS description: Extra arguments to add to the gradle build default: | -Dorg.gradle.internal.publish.checksums.insecure=true \ publish steps: - name: gradle-tasks image: $(params.BASE_IMAGE) volumeMounts: - name: settings-gradle mountPath: /var/configmap {{- if .Values.tekton.packageRegistriesSecret.enabled }} envFrom: - secretRef: name: {{ .Values.tekton.packageRegistriesSecret.name }} {{- end }} workingDir: $(workspaces.source.path)/$(params.PROJECT_DIR) script: | #!/bin/bash set -e gradle \ -I \ /var/configmap/init.gradle \ -PnexusLogin=${CI_USERNAME} \ -PnexusPassword=${CI_PASSWORD} \ $(params.EXTRA_ARGS) env: - name: XDG_CONFIG_HOME value: $(workspaces.source.path)/$(params.PROJECT_DIR) - name: GRADLE_USER_HOME value: $(workspaces.source.path)/$(params.PROJECT_DIR) - name: SONAR_USER_HOME value: $(workspaces.source.path)/$(params.PROJECT_DIR) - name: SONAR_TOKEN valueFrom: secretKeyRef: name: $(params.ci-sonarqube) key: token - name: SONAR_HOST_URL valueFrom: secretKeyRef: name: $(params.ci-sonarqube) key: url - name: CI_USERNAME valueFrom: secretKeyRef: name: $(params.ci-nexus) key: username - name: CI_PASSWORD valueFrom: secretKeyRef: name: $(params.ci-nexus) key: password - name: NEXUS_HOST_URL valueFrom: secretKeyRef: name: $(params.ci-nexus) key: url - name: SNAPSHOTS_REPO_PATH valueFrom: configMapKeyRef: name: {{ .Values.tekton.configs.gradleConfigMap }} key: SNAPSHOTS_REPO_PATH optional: true - name: RELEASES_REPO_PATH valueFrom: configMapKeyRef: name: {{ .Values.tekton.configs.gradleConfigMap }} key: RELEASES_REPO_PATH optional: true {{- include "resources" . | nindent 6 }} {{ end }}