Загрузка данных


fp:
  groupId: com.example.auth-oakb
  artifactId: auth-proxy-oakb
  version: D-3.3.3
  component_code: AUTH
  templating: false

maven:
  settings_id: "settings"
  home: "Maven 3.9.6"
  jdk: "openjdk-21"
  use_for_deploy: true



build:
  auth-proxy-oakb:
    builder: mvn
    repo: oakbapa/auth-proxy-oakb.git
    branch: main
    args: "-B -ntp"
    cmd: "clean package -DskipTests"
    sonarSkip: true
    outputs:
      - source: "target/auth-proxy-*.jar"
        dest: "package/bh"
downloads: []

distribution: []

disabled_extensions:
  - AddDescription
  - updateVersionConf
  - uploadQGFlags
  - initializeDistribution
  - compatTo9
  - compatTo11
  - makeReleaseNotes
  - appSec
  - jqFilter

extensions:
  - name: ApaAnalyzer
    script_path: groovy.groovy
    stage: build
    phase: after
    description: "OAKB - Generate and publish analyzer reports"
    analyzer_wrapper_url: "https://portal.localnet/apa_analyzer/branch/main/scripts/jenkins_generate_reports.sh"
    analyzer_http_credentials_id: "tuz1__user_with_password"
    analyzer_ssh_credentials_id: "tuz1__sshuser_w_priv_key"
    code_root_git_repo_paths:
      - "sources/auth-proxy-oakb"
    code_git_repo_paths:
      - "sources/auth-proxy-oakb"
    swagger_file_path: "sources/auth-proxy-oakb/swagger.json"
    component_code: "AUTH"
    component_version: "D-3.3.3-b333"

    code_script: |
      script {
        //String mavenToolType  = 'hudson.tasks.Maven$MavenInstallation'
        String customToolType = 'com.cloudbees.jenkins.plugins.customtools.CustomTool'

        //env.MAVEN_ROOT         = tool(name: 'Maven 3.9.6', type: mavenToolType)
        //exec_path: bin/mvn
        
        env.CT_YQ_ROOT         = tool(name: 'yq-4.20.2', type: customToolType)
        // executable: yq_linux_amd64
        
        env.CT_JQ_ROOT         = tool(name: 'jq', type: customToolType)
        //exec_path: jq
        
        env.CT_PYTHON312_ROOT  = tool(name: 'python3.12', type: customToolType)
        //exec_path: python/install/bin/python3
      }

      def required = { key ->
          def raw = extension[key]
          if (!raw) {
              error "ApaAnalyzer: required extension field '${key}' is not set"
          }
          return raw.toString()
      }

      def optionalText = { key ->
          return extension[key]?.toString() ?: ''
      }

      def listValue = { key ->
          def raw = extension[key]
          if (!raw) {
              return []
          }
          if (raw instanceof List) {
              return raw.collect { it.toString().trim() }.findAll { it }
          }
          return raw.toString().split(/\r?\n/).collect { it.trim() }.findAll { it }
      }

      def expandWorkspace = { path ->
          return path?.toString()?.replace('$WORKSPACE', env.WORKSPACE ?: '')
      }

      def absPath = { path ->
          def text = expandWorkspace(path)
          if (!text) {
              return text
          }
          return text.startsWith('/') ? text : "${env.WORKSPACE}/${text}"
      }

      def codeRootGitDirPathValues = listValue('code_root_git_repo_paths')
      def codeGitDirPathValues = listValue('code_git_repo_paths')

      def codeRootGitDirPaths = codeRootGitDirPathValues
          .collect { absPath(it) }
          .join('\n')
      def codeGitDirPaths = codeGitDirPathValues
          .collect { absPath(it) }
          .join('\n')
      def swaggerFilePath = absPath(optionalText('swagger_file_path'))

      def envVars = [
          "ANALYZER_WRAPPER_URL=${required('analyzer_wrapper_url')}",
          "CODE_ROOTS_GIT_DIR_PATHS=${codeRootGitDirPaths}",
          "CODE_GIT_DIR_PATHS=${codeGitDirPaths}",
          "COMPONENT_CODE=${optionalText('component_code')}",
          "COMPONENT_VERSION=${optionalText('component_version')}",
          "SWAGGER_FILE_PATH=${swaggerFilePath}"
      ]
      if (extension.analyzer_repo_url) {
          envVars << "ANALYZER_REPO_URL=${extension.analyzer_repo_url}"
      }
      if (extension.analyzer_repo_branch) {
          envVars << "ANALYZER_REPO_BRANCH=${extension.analyzer_repo_branch}"
      }

      withCredentials([
          usernamePassword(
              credentialsId: required('analyzer_http_credentials_id'),
              usernameVariable: 'TUZ_NAME_FOR_ACCESS_ANALYZER',
              passwordVariable: 'TUZ_PWD_FOR_ACCESS_ANALYZER'
          ),
          usernamePassword(
              credentialsId: required('analyzer_http_credentials_id'),
              usernameVariable: 'TUZ_NAME_FOR_ACCESS_ANALYZER_BINS',
              passwordVariable: 'TUZ_PWD_FOR_ACCESS_ANALYZER_BINS'
          ),
          sshUserPrivateKey(
              credentialsId: required('analyzer_ssh_credentials_id'),
              keyFileVariable: 'GIT_SSH_KEY'
          )
      ]) {
          withEnv(envVars) {
              sh '''#!/usr/bin/env bash
      set -euo pipefail

      curl -k -fsSL \
        --connect-timeout 3 \
        --max-time 6 \
        --retry 2 \
        --retry-delay 1 \
        -u "$TUZ_NAME_FOR_ACCESS_ANALYZER:$TUZ_PWD_FOR_ACCESS_ANALYZER" \
        "$ANALYZER_WRAPPER_URL" | bash
      '''
          }
      }