Дженкинс: Как добавить пользовательский инструмент в среду сборки моей работы

Я определяю пользовательский инструмент в Jenkins, и я хотел бы запустить его во время сборки. В "https://wiki.jenkins.io/display/JENKINS/Custom+Tools+Plugin» Я вижу следующее: «Тогда вам просто нужно добавить требование к инструменту в среду сборки вашей работы», но я нигде не могу найти такой вариант. Где я могу найти его? Или есть другой способ запустить установку пользовательского инструмента?


person Ivajlo Iliev    schedule 05.03.2018    source источник


Ответы (3)


Это трубопровод? Если это так, вы можете включить его в файл конвейера в разделе «среда» до этапов, например так:

pipeline {
  agent any
  options {
    timestamps()
  }
  environment {
      TOOL = tool name: '<tool>', type:     'com.cloudbees.jenkins.plugins.customtools.CustomTool'
  }
  stages {
...
}
person Sean C    schedule 06.07.2018
comment
org.codehaus.groovy.control.MultipleCompilationErrorsException: сбой при запуске: WorkflowScript: 5: недопустимые временные метки типа параметра. Допустимые типы параметров: [ansiColor, authorMatrix, buildDiscarder, catchError, checkoutToSubdirectory, disableConcurrentBuilds, disableResume, durableHint, lock, newContainerPerStage, overrideIndexTriggers, parallelsAlwaysFailFast, saveStashes, quietPeriod, rateLimitBuilds, retry, script, skipDefaultCheckout, skipStagesAfterUnstable, timeout, waitUntil, warnError, withContext , withCredentials, withEnv, ws] @ строка 5, столбец 9. timestamps() - person JackOuttaBox; 26.04.2021
comment
удалена часть параметров, но все равно появляется ОШИБКА: не найдено com.cloudbees.jenkins.plugins.customtools.CustomTool с именем ‹tool› - person JackOuttaBox; 26.04.2021

Если вы используете скриптовые конвейеры, вы можете добавить инструмент с помощью команды «инструмент». В следующем примере показано добавление пользовательского инструмента в конвейер со сценарием. Инструмент уже должен быть определен с помощью плагина custom-tool-plugin в вашем глобальном администрировании jenkins.

#!/usr/bin/env groovy

node('windows') {
    stage ('prepare env ') {
       withEnv(["MY_TOOL_DIR=${tool name: 'my_tool', type: 'com.cloudbees.jenkins.plugins.customtools.CustomTool'}"]){

        echo "Path to my_tool\"${MY_TOOL_DIR}\""
        bat( script: '@"%MY_TOOL_DIR%\\my_tool.exe",
             returnStdout: true)
        }
    }
}
person Markus Hofsetter    schedule 17.03.2020
comment
Есть ли способ избежать настройки инструмента, если она уже была сделана? @Маркус Хофсеттер - person Ren; 15.07.2020
comment
Настройка инструмента управляется плагином пользовательского инструмента. Таким образом, вы можете добавить код, который проверяет, установлен ли ваш инструмент в глобальном администрировании jenkins. Например, вы могли бы сделать if test -f "$FILE"; then echo "$FILE exists." exit 0 fi $FILE может быть самим инструментом или неким маркерным файлом, который вы создаете при первой установке инструмента. - person Markus Hofsetter; 21.07.2020

В конфигурации вашего проекта (/job/<your-project>/configure) в области "Среда сборки" есть параметр "Установить пользовательские инструменты". Отметьте это, и вы сможете выбрать один из инструментов, которые вы настроили в Глобальной конфигурации инструмента (/configureTools/), и если вы указали сценарий, он будет запущен в начале вашей сборки для установки инструмента.

введите здесь описание изображения

В этом примере я решил добавить инструмент clojure, который я настроил, в сборку.

person Conan    schedule 19.03.2019
comment
Вы уверены, что это доступно для конвейерных заданий? Я не вижу раздел Build Environment. Похоже, что это существует только для стандартных заданий с графическим интерфейсом. Со своей стороны я вижу только General, Office 365, Build Triggers, Advanced Proj. Параметры и Конвейер. - person Boris; 01.06.2019
comment
Боюсь, не уверен, может быть ответ @sean-c поможет? - person Conan; 02.06.2019
comment
@Conan Как мы можем получить доступ к переменной clojure на этапе сборки? - person NaveenKumar Namachivayam; 08.01.2021
comment
Я думаю, что мы просто вызываем его из оболочки, я боюсь, что мы перестали использовать jenkins, поэтому я не могу проверить. Удачи! - person Conan; 25.01.2021