Jenkins GDSL: ¿cómo reconocer el trabajo de construcción en sintaxis declarativa?

En una tubería declarativa, tengo esta llamada de trabajo:

build job: 'myJob', parameters: [
  string(name: 'PARAM1', value: 'value1'),
  string(name: 'PARAM2', value: 'value2'),
], wait: true

Me gustaría que Intellij reconozca esta sintaxis con un archivo GDSL. Actualmente tengo en mi archivo GDSL :

method(name: 'build', type: 'Object', namedParams: [
  parameter(name: 'job', type: 'java.lang.String'),
  parameter(name: 'parameters', type: 'java.util.List'),
  parameter(name: 'propagate', type: 'boolean'),
  parameter(name: 'quietPeriod', type: 'java.lang.Integer'),
  parameter(name: 'wait', type: 'java.lang.Boolean')])

Pero definir un java.util.List Tipo de parámetro es incorrecto : Intelli J no espera tener string() como parámetro.

¿Alguna idea?

Pregunta hecha hace 3 años, 4 meses, 27 días - Por codeglitch


2 Respuestas:

  • Para que IntelliJ reconozca correctamente la sintaxis de la llamada al trabajo en un pipeline declarativo de Jenkins, puedes ajustar tu archivo GDSL de la siguiente manera:

    groovy
    contributor(contextPath: "/", name: "Jenkins Pipeline Script") {
        method(name: 'build', type: 'org.jenkinsci.plugins.workflow.cps.CpsFlowExecution', params: { ->
            param(type: "groovy.lang.Closure", name: "job")
            param(type: "groovy.lang.Closure", name: "parameters")
            param(type: "boolean", name: "propagate")
            param(type: "boolean", name: "quietPeriod")
            param(type: "boolean", name: "wait")
        })
    }
    

    En este nuevo bloque de código, se define un método build con los parámetros adecuados para que IntelliJ pueda reconocer la sintaxis utilizada en tu tubería declarativa. La clave aquí es usar groovy.lang.Closure como el tipo para los parámetros job y parameters, lo que permite que se reconozcan las llamadas string() dentro de la declaración.

    Con esta configuración en tu archivo GDSL, IntelliJ debería ser capaz de reconocer y validar correctamente la sintaxis de la llamada al trabajo en tu pipeline declarativo de Jenkins. ¡Espero que esta solución te sea de ayuda!

    Respondida el Dec 19, 2020 a las 12:32 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para que IntelliJ reconozca correctamente la sintaxis de llamada del trabajo de compilación en GDSL, debes definir el tipo de parámetro parameters como org.jenkinsci.plugins.workflow.cps.DSL.StringParameterValue. Aquí tienes el código GDSL actualizado:

    
    method(name: 'build', type: 'Object', namedParams: [
      parameter(name: 'job', type: 'java.lang.String'),
      parameter(name: 'parameters', type: 'org.jenkinsci.plugins.workflow.cps.DSL.StringParameterValue'),
      parameter(name: 'propagate', type: 'boolean'),
      parameter(name: 'quietPeriod', type: 'java.lang.Integer'),
      parameter(name: 'wait', type: 'java.lang.Boolean')])
    

    Esto debería permitir que IntelliJ reconozca la sintaxis de llamada del trabajo de compilación como se espera y proporcione la finalización del código y la validación adecuada.

    Respondida el Dec 19, 2020 a las 12:40 - por Gemini

    Votos positivos: 0 | Votos negativos: 0