Jenkins: Criando campos dinâmicos a partir de chamadas à APIs
실용성을 예로 들자면 브라질 국가에서 IBGE 레토난도 API를 사용하는 것이 좋습니다. Segue abaixo um exemplo do JSON que ela retorna:
[
{
"id": 11,
"sigla": "RO",
"nome": "Rondônia",
"regiao": {
"id": 1,
"sigla": "N",
"nome": "Norte"
}
},
{
"id": 12,
"sigla": "AC",
"nome": "Acre",
"regiao": {
"id": 1,
"sigla": "N",
"nome": "Norte"
}
},
...
]
Aqui nós iremos pegar apenas as UFs dos Estados armazenadas no campo
sigla
e popular um single select
do Active Choices (que já deve estar instalado):Postman API를 사용하는 테스트 테스트 도구는 GET 도구https://servicodados.ibge.gov.br/api/v1/localidades/estados를 요청하는 데 사용할 수 있습니다.
Vamos ao código da pipeline:
import groovy.json.JsonSlurperClassic
node {
properties([
parameters([
[$class: 'ChoiceParameter',
choiceType: 'PT_SINGLE_SELECT',
description: 'Selecione o Estado',
name: 'estado',
script: [$class: 'GroovyScript',
script: [
sandbox: false,
classpath: [],
script:
"""
import groovy.json.JsonSlurperClassic
def proc = "curl -s -H 'Accept:application/json;charset=UTF-8' https://servicodados.ibge.gov.br/api/v1/localidades/estados".execute()
proc.waitFor()
def output = proc.in.text
def exit_code = proc.exitValue()
def error = proc.err.text
if (error) {
print("Std err: \${error}")
print("Process exit code \${exitcode}")
return exitcode
}
def json = new JsonSlurperClassic().parseText(output)
def siglas = []
json.each { v ->
siglas.push(v.sigla)
}
return siglas.sort()
"""
]
]
]
])
])
stage('Estágio único') {
print("O Estado escolhido foi ${estado}.")
}
}
Por meio da função
parameters()
, estamos definindo uma lista com todos os paraâmetros que nosso job irá possuir. Neste caso, estamos definindo apenas um campo do tipoChoiceParameter
. Precisamos especificar o tipo da escolha, setando-a como PT_SINGLE_SELECT
, damos um nome através da propriedade name
e escrevemos então o script em Groovy que será executado para gerar as opções do campo.Importante: Todo script colocado aqui deve retornar uma lista para popular o campo.
JsonSlurper는 JsonSlurper 라이브러리를 JSON으로 역직렬화하거나 Groovy로 역직렬화하고 배열을 Groovy로 변환하여 UF로 다시 변환할 수 있습니다.
예를 들어, temos um único stage no pipeline, printando na tela a UF do Estado selecionado.
Alguns pontos 중요 사항:
문제 해결
Para que você consiga fazer um melhor Troubleshooting do script Groovy executado para o Active Choices, você pode criar um logger especialmente para ele. Quando queremos separar o debug desse 스크립트는 파이프라인 원칙을 수행합니다. 다음은 Jenkins 관리 > 시스템 로그 > 클릭에서 새 로그 레코더 추가 > "ActiveChoices"로 이름 지정 > 클릭에서 추가 > No campo Logger digite
org.biouno.unochoice
, 선택에서 nível desejado 및 depois clique에서 저장합니다.참조
Reference
이 문제에 관하여(Jenkins: Criando campos dinâmicos a partir de chamadas à APIs), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/stefanomartins/jenkins-criando-campos-dinamicos-a-partir-de-chamadas-a-apis-26dm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)