Вопросы с тегами [jenkins-pipeline]

1

голосов
0

ответ
8

Просмотры

При использовании декларативного синтаксиса, есть способ избежать отдельных этапов для каждого «когда» состояния?

Есть ли способ, чтобы избежать создания отдельного этапа для каждого условного «когда» заявления? Другими словами, в приведенном ниже примере, команда Maven точно так же для двух ветвей за исключением одного параметра. Таким образом, есть более простой способ иметь одну ступень под названием «Maven сборки» с условным исполнением на основе ветви, которая строится. Помимо утомительного дублирования, побочный эффект этого является то, что в Jenkins, то «стадия» вид становится длиннее и длиннее. Трубопровод {:: этап ( 'Maven сборки (разработка)') {когда {ветвь 'развивать'} шаги {// Выполните следующие действия}} этап ( 'Maven сборки (выпуск)') {когда {ветка «релизы / ** ' } шаги {// Выполняем те же шаги, как и в предыдущем Maven Строить // но с небольшим изменением. }}}
user1554876
1

голосов
1

ответ
182

Просмотры

Дженкинс Pipeline плагин ошибки Linux при запуске скрипта

Я пытаюсь запустить скрипт, используя Jenkins плагин трубопровода на агент машину. Ниже приведен пример сценария трубопровода: узел ( «ХХХХХ») {currentBuild.displayName = «» Sh «ххххх»} Во время работы я получаю сообщение об ошибке: Не удалось открыть «getent хостов ent410373 2> & 1 |» : Нет такой файл или каталог ent410373 не является агент машины ведомого устройства, которое является Linux хостом. Является ли эта ошибка связана с плагином трубопровода? или машина? Потому что я в состоянии выполнить тот же самый скрипт на Jenkins с помощью выполнения сценария оболочки строителя плагина. Пожалуйста помоги.
Goutham Nithyananda
1

голосов
0

ответ
242

Просмотры

Дженкинс добавляет @ (в знак), чтобы рабочее пространство имя после работы убит

Я использую Дженкинс конвейерного проект строительства моего OpenEmbedded проекта на основе. Узел моего декларативной трубопровода содержит customWorkspace «/ данные / Jenkins / ае /» Дженкинс фактически создает один каталог глубже, в / данных / Jenkins / / ое имя-проекта /, которая не является проблемой. Но после того, как я убил одну работу во время разработки, Дженкинс в настоящее время добавляет в знак на пути, например, / / ​​Jenkins / / ое имя-проекта данных @ 2 /, и это убивает ОЭ. ... @ 2 каталога восстанавливается даже если удалить все из / данных / Jenkins / ае /. Я так же пытался что позволяет процессов сборки, основанные на этой ошибке, но ни одна из этих работ. Что вызывает такое поведение и как его избежать? Либо отключить при использовании знака, или отключить использование подкаталога?
Adam Trhon
1

голосов
0

ответ
777

Просмотры

Изменение Дженкинс агента на любой стадии трубопровода

У меня есть трубопровод, который необходимо использовать дифферент агентов в зависимости от текущей стадии. Я стараюсь делать это с подходом: агентские NONE стадии {стадия ( "Print Debug Vars") {// Не требуется узел}} этап ( "Git Checkout") {агент {метка 'Докер'} ...} этап (» Git Checkout ") {агент {метка„анзибль“} ...} но я получаю сообщение об ошибке: Требуется контекст класса hudson.Launcher, возможно, отсутствует, вы забыли, чтобы окружить код с шагом, который обеспечивает это, например: узел [Трубопроводная ] // withCredentials [Трубопроводная]} [Трубопроводная] // withEnv [Трубопроводная] Конец трубопровода org.jenkinsci.plugins.workflow.steps.MissingContextVariableException: Необходимый контекст класса hudson.Launcher отсутствует в org.jenkinsci.plugins.workflow.steps .StepDescriptor.
Juliatzin del Toro
1

голосов
0

ответ
74

Просмотры

Дженкинс трубопровода Replay несколько файлов

Как объясняют в этом посте (https://www.cloudbees.com/blog/replay-pipeline), я хотел бы повторить трубопровод, но с несколькими файлами. Является ли это возможным ?
Yoh Ann
1

голосов
1

ответ
72

Просмотры

Использование SQL скрипт через SSH не удается, но не тогда, когда он запускается непосредственно на хост

Судо докер Exec -i nameofthecontainer / USR / бен / MySQL -u $ MYSQLUSER -pPassword $ MYSQLOPTIONS $ MySQLDb </srv/Dump.sql сделано Когда я выполнить скрипт непосредственно на хосте, это удалось. Но когда я пытаюсь запустить Дженкинса-Job (который выполняет этот databasescript через SSH) есть эти ERROR сообщение (s): ERROR 2013 (HY000): Потеряно соединение с сервером MySQL на «чтение начальный пакет связи», системная ошибка: 0 (...) ERROR 2002 (HY000): не удается подключиться к локальному серверу MySQL через гнездо '/var/run/mysqld/mysqld.sock' (2) кто-нибудь может помочь?
adbo
1

голосов
2

ответ
203

Просмотры

Создать Xl развернуть пакет с несколькими артефактами Jenkins

Есть ли способ, чтобы создать пакет XL развертывания с помощью Jenkins, а затем добавить несколько артефактов в пакет? Кажется, что при использовании XL развёртывать плагин, как только вы создаете пакет не представляется возможным, чтобы добавить другие артефакты в пакет с помощью Дженкинс. Я также использую релиз XL, который звонит трубопровод Дженкинс, чтобы построить многочисленные артефакты, если это какой-либо помощи. Спасибо!
saber
1

голосов
0

ответ
250

Просмотры

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

У меня есть 3 задачи, которые должны быть в 3-х трубопроводов, которые будут работать таким образом, что задачи 1 и 2 работают параллельно. Задача 1 должна работать в фоновом режиме, молча (Как установить это?) Задача 2 является работник и задачи 3 Триггеры после Задание 2 завершено. Задача 1, который работает в фоновом режиме, должно быть прекращено, когда Задача 2 завершается так, что Задача 3 может быть вызвана. (Не знаете, как установить это.) В этом случае задача 1 записывает в файлы. Будут ли прекращение Task 1 вызывает проблемы, если он пишет в файл при получении от прекращения Дженкинс? Любая помощь в этом очень ценится. узел ( "mach12") {параллельные ( "Мониторы": {//
Chris
1

голосов
1

ответ
188

Просмотры

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

Я настроил маркер API Github в Jenkins для использования в работах по оформлению заказа на хранилищу. У меня также есть полномочия связывания плагина, чтобы ввести другие типы учетных данных в трубопровод, используя команду withCredentials. Но теперь каждый трубопровод может прочитать маркер API GitHub с помощью withCredentials. Как я могу ограничить доступ к определенным глобальным учетным данным для всех рабочих мест?
joh-m
1

голосов
1

ответ
1.3k

Просмотры

Как определить параметр Jenkins String, на основе параметра Выбор выбранного

Я пытаюсь настроить работу, которая требует от пользователя ввести входную строку на выборе выбранного Я видел различный плагин, но все они имеют возможность параметров выбора, чтобы забрать из, но не строка один сценарий - продукт (азбука, Защита, ГХИ, JKL) Если название продукта только «DEF», то пользователь должен ввести зависимый номер версии в качестве параметра строки «12356», если какой-либо другой продукт выбран, то пользователь не должен иметь любую возможность ввести параметр строка приветствуется любая помощь
DevOops
1

голосов
1

ответ
248

Просмотры

Дженкинс артефакты повреждены при копировании

Я настраиваю декларативный трубопровод Дженкинс, где мне нужно скопировать артефакт из другой работы. Артефакт представляет значительный размер, 10,8 M, и, кажется, испорчена при копировании. Я сохранить скопированный артефакт снова как артефакт во второй работе и увидеть размер, 10.78 М. Есть ли основания для такого поведения или способов избежать этого? Полученный код из трубопровода кажется поврежден, и байт за байтом сравнение показывает различия между артефактом в первом и втором рабочих мест. Я использую Copy артефакта плагин для Дженкинс, как так: шаг ([$ класса: '' CopyArtifact, Projectname: 'First_Job', фильтр:, fingerprintArtifacts '** / * почечного кровотока.': Правда, цель: '']) И я сохранить артефакт во второй раз, как это: archiveArtifacts артефакты: «» My_Artifact.rbf, отпечатки пальцев:
Ben
1

голосов
1

ответ
660

Просмотры

Repository URL из параметра строки в Дженкинс

Я строй по сценарию трубопровода Дженкинс. файл Дженкинс извлекается из репозитория Git. Я хочу параметризировать Repository URL. Я создал параметр String. Я пытался получить доступ к строковому параметру в поле «URL Repository», но не работаю. Я получаю сообщение об ошибке, что параметр не является признанной URL. Тем не менее, я могу получить доступ к переменной в сценарии оболочки. Например, если параметр строка определяется как «GIT_URL», я пытаюсь получить к нему доступ с помощью $ {GIT_URL} или $ {params.GIT_URL} или $ {env.GIT_URL} или $ GIT_URL. Неудачно. Какие-нибудь мысли.
Ramprasad V
1

голосов
1

ответ
199

Просмотры

Получение исключения при выполнении сборки одинаковых заданий параллельно

Я получаю исключение во время бега сборок той же работы параллельно. Я передаю аргументы как CHROME_DRIVER, GECO_DRIVER, и на основе числа аргументов должны быть созданы сборки и выполняется параллельно. Мое имя ребенка работа образец. Это мой код, чтобы выполнить работу строит параллельно: водитель DEF = params.DRIVER.split ( '') paramBValue = params.MODULE_IID Защита testJobs = [] для (INT I = 0; я
Manoj Joshi
1

голосов
0

ответ
719

Просмотры

Дженкинс Pipeline Получить родительский

У меня есть Jenkins скриптового трубопровод, и мне нужно, чтобы получить Родитель номер сборки. Как это сделать? Я могу получить родительское имя по:. Защиту parentDisplayName = currentBuild.rawBuild.getParent () getFullName () Println «Родитель =» + parentDisplayName Как получить это номер сборки?
Moshe Ronen
1

голосов
0

ответ
293

Просмотры

Дженкинс Голубой океан не открывая работу определяется плагином папки

Я использую последнюю Дженкинс с Blue Ocean и плагиным папки. Если я определяю работу с плагином папки, когда нажмите Открыть ссылку Blue Ocean его не открывая страницу работы. Вот мои шаги. Создать имя папки с Test Foler Создать работу конвейера с именем Hello World Сохраните работу и попробуйте нажать на ссылку Open Blue Ocean, это не работает. его попытке открыть этот URL / Jenkins / синий / организации / Jenkins / Test% 20Folder / Hello% 20World% 20Job / правильный URL в / Jenkins / синий / организации / Jenkins / Тест% 20Folder% 2FHello% 20World% 20Job / активность Есть фикс для этого?
sfgroups
1

голосов
0

ответ
56

Просмотры

Дать pipelineplugin в Дженкинс

Я пишу Jenkinsplugin. Я создал сценарий трубопровода, когда я выполняю скрипт его вызов некоторых скриптов и настройку трубопровода. То работает нормально. Пример моего кода: узел ( 'мастер') {попробуйте {Защиту appWorkspace = './app/' DEF testWorkspace = './tests/' стадии ( 'очистка') {// cleanWs ()} этап ( "Сложение ') {параллельно (приложение: {реж (appWorkspace) {мерзавец изменений: ложь, credentialsId: 'jenkins.git', опрос: ложь, URL: 'https: //src.url/to/our/repo' реж (' ./app ') {ш "#! / bin / Баш -LX \ п ./gradlew assembleRelease" }]} Параллельные шаги}} задвижка (Исключение е) {Println (е); } Наконец {стадия ( 'Clean') {archiveArtifacts 'TestResult.xml' ш "#! / Bin / Баш -LX \ п KillInstance.sh"}}} Это заводной скрипт определяющий мой трубопровод. То, что я пытаюсь достичь с помощью моего плагина в том, что пользователь, который использует этот плагин просто вставляет некоторые pathvariables например. путь к его решению, или путь к его источнику GitHub. Мой плагин автоматически выполняет перечисленные выше сценарий с заданными параметрами. Моя проблема в том, что я не могу найти любую документацию, как писать такую ​​конструкцию трубопровода в Java. Если кто-то может мне точку в правильном направлении, я ценю это. } Наконец {стадия ( 'Clean') {archiveArtifacts 'TestResult.xml' ш "#! / Bin / Баш -LX \ п KillInstance.sh"}}} Это заводной скрипт определяющий мой трубопровод. То, что я пытаюсь достичь с помощью моего плагина в том, что пользователь, который использует этот плагин просто вставляет некоторые pathvariables например. путь к его решению, или путь к его источнику GitHub. Мой плагин автоматически выполняет перечисленные выше сценарий с заданными параметрами. Моя проблема в том, что я не могу найти любую документацию, как писать такую ​​конструкцию трубопровода в Java. Если кто-то может мне точку в правильном направлении, я ценю это. } Наконец {стадия ( 'Clean') {archiveArtifacts 'TestResult.xml' ш "#! / Bin / Баш -LX \ п KillInstance.sh"}}} Это заводной скрипт определяющий мой трубопровод. То, что я пытаюсь достичь с помощью моего плагина в том, что пользователь, который использует этот плагин просто вставляет некоторые pathvariables например. путь к его решению, или путь к его источнику GitHub. Мой плагин автоматически выполняет перечисленные выше сценарий с заданными параметрами. Моя проблема в том, что я не могу найти любую документацию, как писать такую ​​конструкцию трубопровода в Java. Если кто-то может мне точку в правильном направлении, я ценю это. То, что я пытаюсь достичь с помощью моего плагина в том, что пользователь, который использует этот плагин просто вставляет некоторые pathvariables например. путь к его решению, или путь к его источнику GitHub. Мой плагин автоматически выполняет перечисленные выше сценарий с заданными параметрами. Моя проблема в том, что я не могу найти любую документацию, как писать такую ​​конструкцию трубопровода в Java. Если кто-то может мне точку в правильном направлении, я ценю это. То, что я пытаюсь достичь с помощью моего плагина в том, что пользователь, который использует этот плагин просто вставляет некоторые pathvariables например. путь к его решению, или путь к его источнику GitHub. Мой плагин автоматически выполняет перечисленные выше сценарий с заданными параметрами. Моя проблема в том, что я не могу найти любую документацию, как писать такую ​​конструкцию трубопровода в Java. Если кто-то может мне точку в правильном направлении, я ценю это.
rm -rf
1

голосов
0

ответ
1.2k

Просмотры

Как пройти к Счетчики pipelineJob в DSL

У меня есть очень похожие работы трубопроводов, которые имеют только различие параметры. Цель состоит в том, чтобы создать эти рабочие места путем передачи параметров в DSL-скрипт без дублирования кода. Я последовал за эту статью. Так что если вы запустите DSL сценарий ниже после того, как вы реализуете шаги, как указано в статье, мой скрипт может работать. TL; DR В этой статье добавляет общую библиотеку, а также использовать Jenkinsfile, что разделяемые библиотеки. У меня есть очень похожий подход. Разница заключается в том, я хочу создать мои сборки рабочих мест через DSL и изменяет параметры Jenkinsfile по умолчанию настройками на DSL. Вопрос заключается в том, как я могу передать / параметры переопределения в Jenkinsfile. // Кстати, я запускаю этот код ниже в цикле. Открыты для любого suggesstion pipelineJob ( «AwesomeBild») {описание ( «трубопровод, созданный» DSL ) определение {cpsScm {{мерзавец SCM {{удаленный URL ( 'https://github.com/jalogut/jenkinsfile-shared-library-sample.git')} ветви ( 'мастер') // как я могу передать Params в файл scriptPath ( 'Jenkinsfile') расширений {}}}}}} Изменить параметры работали хорошо. Вот Lastest версия файла DSL. ( 'AwesomeBild') {описание ( "Трубопровод, созданный DSL") параметров pipelineJob {stringParam ( "ключ", "значение")} определение {cpsScm {{мерзавец SCM {{удаленный URL ( 'https://github.com / jalogut / jenkinsfile-разделяемая библиотека-образец.
Onuralp
1

голосов
2

ответ
314

Просмотры

Jenkins job after merge request is created

I am using Gitlab for source control and Jenkins for build management. I want to create a job in Jenkins that will run after a merge request is created. It is currently failing due to: ERROR: Branch not suitable for integration as it does not merge cleanly: Command "git merge --ff a83f5745ba2ca0586as4cfdb7d5e207a911d34" returned status code 128: stdout: stderr: *** Please tell me who you are. In Jenkins job configuration (Which is Pipeline) I have the following: Build Triggers Build when a change is pushed to GitLab. GitLab CI Service URL: http://... (*)Opened Merge Request Events (*)Rebuild open Merge Requests: On push to source or target branch Pipeline Pipeline script from SCM SCM: Git Repositories Repository URL: http://... Credentials: Jenkins Repository URL: ${gitlabSourceRepoSshUrl} Credentials: Jenkins Branches to build Branch Specifier (blank for 'any'): origin/${gitlabSourceBranch} Branch Specifier (blank for 'any'): merge-requests/${gitlabMergeRequestIid} Additional Behaviours (*)Wipe out repository and force clone (*)Merge before build Name of repository: origin Branch to merge: ${gitlabTargetBranch} Merge strategy: default Fast-forward mode: --ff Script Path: Jenkinsfile In my Jenkins file, I have the following related section: stages { stage('Test') { steps { script { env.isMergeRequest = env.gitlabTargetBranch != env.gitlabSourceBranch deleteDir() unstash 'src' def javaHome = tool 'Java8' def mvnHome = tool 'Maven3' } catchError { withEnv(["PATH+JDK=$javaHome/bin:$mvnHome/bin", "JAVA_HOME=$javaHome"]) { echo "branchName: ${env.branchName}; isMergeRequest: ${env.isMergeRequest}" script { if ((env.isMergeRequest != 'true')) { echo "Executing tests for merge request..." sh "./gradlew -Ddocker.local=true test" } } } } fileOperations([fileZipOperation('dockerLogs')]) archiveArtifacts allowEmptyArchive: true, artifacts: 'dockerLogs.zip' echo "Gathering test reports" junit healthScaleFactor: 10.0, testResults: '**/build/test-results/test/*.xml' } } Happy to provide any other info if needed!
Saffik
1

голосов
0

ответ
115

Просмотры

строка пары в hudson.plugins.git.BranchSpec не решают

Почему это, что одна работа не решает Param используется в hudson.plugins.git.BranchSpec в то время как другой делает? Является ли branch_name особенным в некотором роде и BACKEND_BRANCH нет? Good Job branch_name Ветка для развертывания с. mybranch .... * / $ {branch_name} В противном случае работы ... BACKEND_BRANCH Отделение для сборки развернутого в среде ... * / $ {BACKEND_BRANCH} hudson.plugins.git.GitException Ошибка выборки команды «/ USR / бен / мерзавец --tags --progress происхождения + ссылки / головок / $ {BACKEND_BRANCH}: ссылки / пультов ДУ / происхождение / $ {BACKEND_BRANCH} - -prune»вернулся ... STDERR: со смертельным исходом: не удалось найти удаленного реф рефов / головы / $ {} BACKEND_BRANCH
Peter Kahn
1

голосов
0

ответ
105

Просмотры

How do I run stages on a Windows docker host?

On a linux docker host this just works: stage('This is a linux docker host') { agent { docker { image "library/hello-world:latest" label my-linux-server } } steps { } } But I dastardly windows 2016 server with Docker EE installed: stage('This is a Server 2016 docker host') { agent { docker { image "library/hello-world:latest" label my-WINDOWS-server } } steps { } } I get this error: java.io.IOException: CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.(Unknown Source) at java.lang.ProcessImpl.start(Unknown Source) Also: hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from myserver/1.2.3.4:49764 at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1696) at hudson.remoting.UserResponse.retrieve(UserRequest.java:313) at hudson.remoting.Channel.call(Channel.java:909) at hudson.Launcher$RemoteLauncher.launch(Launcher.java:1052) at hudson.Launcher$ProcStarter.start(Launcher.java:449) at org.jenkinsci.plugins.durabletask.BourneShellScript.launchWithCookie(BourneShellScript.java:186) at org.jenkinsci.plugins.durabletask.FileMonitoringTask.launch(FileMonitoringTask.java:64) at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.start(DurableTaskStep.java:177) at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:224) at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:150) at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:108) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:19) at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57) at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109) at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82) at sun.reflect.GeneratedMethodAccessor252.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72) at com.cloudbees.groovy.cps.impl.CollectionLiteralBlock$ContinuationImpl.dispatch(CollectionLiteralBlock.java:55) at com.cloudbees.groovy.cps.impl.CollectionLiteralBlock$ContinuationImpl.item(CollectionLiteralBlock.java:45) at sun.reflect.GeneratedMethodAccessor259.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72) at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21) at com.cloudbees.groovy.cps.Next.step(Next.java:83) at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174) at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163) at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:122) at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261) at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163) at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:19) at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:35) at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:32) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108) at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:32) at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:331) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:82) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:243) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:231) at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64) at java.util.concurrent.FutureTask.run(Unknown Source) at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131) at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) Caused: java.io.IOException: Cannot run program "nohup" (in directory "C:\J\workspace\stage844818a8"): CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessBuilder.start(Unknown Source) at hudson.Proc$LocalProc.(Proc.java:249) at hudson.Proc$LocalProc.(Proc.java:218) at hudson.Launcher$LocalLauncher.launch(Launcher.java:929) at hudson.Launcher$ProcStarter.start(Launcher.java:449) at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:1299) at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:1259) at hudson.remoting.UserRequest.perform(UserRequest.java:210) at hudson.remoting.UserRequest.perform(UserRequest.java:53) at hudson.remoting.Request$2.run(Request.java:358) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at hudson.remoting.Engine$1$1.run(Engine.java:94) at java.lang.Thread.run(Unknown Source) Finished: FAILURE
red888
1

голосов
0

ответ
555

Просмотры

Put args from Jenkins to dockerfile

мы имеем dockerfile в нашем angular2 проекте и мы строим / Тяни / Толкай его на сервер с Дженкинс здесь содержание dockerfile # Stage 0, основанный на Node.js, для создания и компиляции Угловая от узла: последние, как узел Workdir / пакет COPY приложения .json / приложение / RUN НОЙ установки COPY ./ / приложение / ARG окр = прод RUN НПМ запуск сборка - --prod --environment $ ENV # Этап 1, основанный на Nginx, чтобы иметь только скомпилированные приложения, готовые к производству с Nginx оТ Nginx: 1,13 COPY --from = узел / приложение / расстояние / / USR / доли / Nginx / html COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf, когда я строю и толчок он с этим аргументах (из PowerShell или ЦМД), он прекрасно работает, но нужно поставить этот ARG из Дженкинс раба при развертывании, возможно ли это? --build-Arg ENV = DEV. Докер построить -t admione-фронт-тест: последний --build-Arg ENV = тест. здесь Дженкинс построить и развернуть узел сценария {этап (» строить ') {строить работу: 'pathToProject' // путь к рабочей области (файлы проекта)} этап (' развернуть ') {sshagent (учетные данные: [' Дженкинс-учетных ']) {Строка commandToRun =' остановка проекта Docker || правда && докер гт проект || правда '; commandToRun = commandToRun + '&& докер тянуть реестра / проект: последние'; commandToRun = commandToRun + '&& докер запуска -d -p 81:80 --restart если-не останавливал --name проекта реестра / проекта: последние' ш "SSH -o StrictHostKeyChecking = нет корень / бен / Баш -c«\" $ {commandToRun} \ "'"}}} Дженкинс-учетных ']) {Строка commandToRun =' остановка проекта докер || правда && докер гт проект || правда '; commandToRun = commandToRun + '&& докер тянуть реестра / проект: последние'; commandToRun = commandToRun + '&& докер запуска -d -p 81:80 --restart если-не останавливал --name проекта реестра / проекта: последние' ш "SSH -o StrictHostKeyChecking = нет корень / бен / Баш -c«\" $ {commandToRun} \ "'"}}} Дженкинс-учетных ']) {Строка commandToRun =' остановка проекта докер || правда && докер гт проект || правда '; commandToRun = commandToRun + '&& докер тянуть реестра / проект: последние'; commandToRun = commandToRun + '&& докер запуска -d -p 81:80 --restart если-не останавливал --name проекта реестра / проекта: последние' ш "SSH -o StrictHostKeyChecking = нет корень / бен / Баш -c«\" $ {commandToRun} \ "'"}}}
Adam Bremen
1

голосов
0

ответ
651

Просмотры

Подавить трубопроводов Выход в Дженкинс файле

Когда я запускаю сборку на моей Дженкинс всегда печатает трубопровод при перемещении через шаги Дженкинс. Ток на выход из консоли: Строить контекст: CI: чистое: приложение: чистый BUILD УСПЕШНОГО в 22S 2 осуществимых задачах: 2 выполненных [Pipeline] Сценарий [трубопровод] {[трубопровод] свойстве [Трубопроводный] ш Я хочу видеть только фактическую казни я объявил. Консоль Ouput должна выглядеть контексте сборки: CI: чистый: приложение: чистый BUILD УСПЕШНОГО в 22S 2 осуществимых задач: 2 выполняется
Mr.Mountain
1

голосов
0

ответ
56

Просмотры

Ссылка Spec для источников Branch в Дженкинс Работа построить Мастер и все одобренные запросы тянуть?

Что бы реф Spec для отраслевых источников, чтобы построить Мастер и все одобренные запросы тянуть? Я пытаюсь что-то вроде этого: + ссылки / тянуть / $ {ghprbPullId} / *: ссылки / пультов ДУ / происхождение / пр / $ {ghprbPullId} / *
mtess
1

голосов
0

ответ
207

Просмотры

Дженкинс трубопроводов сценарий

Я пытаюсь написать мой первый сценарий трубопровода, моя идея заключается в следующем. У меня есть главная ветвь, два из моих команд будет создавать две ветви, чтобы сделать их PROJETS от основной. После того, как их фиксаций в двух отдельных ветвей, работа будет начата, чтобы объединить эти две ветви к главному, после сборки будет срабатывать. Это мой трубопровод сценарий, который я начал я не закончил еще: трубопровод {агент любой стадии {стадия ( «Initialize») {шаги {контроль изменений: правда, опрос: правда, SCM: [$ класс: «GitSCM», ветви: [[название: 'происхождение / мастер'], [название: 'происхождение / branch1'], [название: 'происхождение / branch2']], doGenerateSubmoduleConfigurations: ложные, расширения: # Таймаут = 10 [трубопровод]} [трубопровод] // этап [трубопровод] стадия [трубопровод] {(сборка) Этап 'Построить' пропускается из-за отказом ранее (ов) [трубопровод]} [трубопровод] // этап [трубопровод] } [Трубопроводный] // узел [трубопровод] Конец трубопровод hudson.plugins.git.GitException: Команда "git.exe Rev-разбор" https://github.com/--------/jenkins.git / мастер ^ {совершить} "" возвращается код состояния 128: стандартный вывод: https://github.com/--------/jenkins.git/master^{commit} STDERR: со смертельным исходом: Неверное имя объекта «HTTPS ». на org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn (CliGitAPIImpl.java:1996) в org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn (CliGitAPIImpl.java:1964) в org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn (CliGitAPIImpl.java:1960) при org.jenkinsci.plugins.gitclient.CliGitAPIImpl.
Free23
1

голосов
0

ответ
143

Просмотры

Integrating Jenkins pipeline with keybase.io

Моя команда использует keybase.io вместо слабины, и я хотел бы наши результаты Дженкинс размещать в сборках каталог нашей keybase команды. До сих пор у меня есть шаг после (я использую декларативный трубопровод) следующим образом: пост {успех {ш «эхо„Успешное накопление моего приложения“| keybase чат отправить mycoolteam --channel строит»}} Я также создал keybase счет для нашего «бот» и установили и вошли в систему под пользователем Дженкинс на коробке сборки. Я могу успешно отправлять сообщения из окна нашей keybase команды, используя подобный ошибка, что я вижу это так: keybase статус 2018-05-05T07: 53: 41.578999Z ▶ [INFO keybase fork_server_nix.go: 34] 001 Запуск keybase .оказание услуг. Работа для keybase.service не удалось, так как процесс управления завершался с кодом ошибки. См «systemctl --user статус keybase.service» и " 2018-05-05T07: 53: 41.713609Z ▶ [ERRO keybase fork_server.go: 54] 003 Ошибка в процессе сервера нерестового: статус выхода 1 2018-05-05T07: 53: 41.713695Z ▶ [ERRO keybase main.go: 90] 004 статуса выхода 1 к сожалению, команда systemctl и journalctl не дает мне ничего работать. Как я могу гарантировать, что Дженкинс может связаться с keybase по сценарию трубопровода? Обновление: Пробовал с помощью -F флага с keybase после прочтения предложения здесь. Теперь ошибка выглядит так [ERRO keybase main.go: 90] 001 набор Unix /run/user/112/keybase/keybased.sock: подключение: нет такого файла или каталога 2018-05-05T07: 53: 41.713609Z ▶ [ERRO keybase fork_server.go: 54] 003 Ошибка в процессе сервера нерестового: статус выхода 1 2018-05-05T07: 53: 41.713695Z ▶ [ERRO keybase main.go: 90] 004 статуса выхода 1 к сожалению, команда systemctl и journalctl не дает мне ничего работать. Как я могу гарантировать, что Дженкинс может связаться с keybase по сценарию трубопровода? Обновление: Пробовал с помощью -F флага с keybase после прочтения предложения здесь. Теперь ошибка выглядит так [ERRO keybase main.go: 90] 001 набор Unix /run/user/112/keybase/keybased.sock: подключение: нет такого файла или каталога Как я могу гарантировать, что Дженкинс может связаться с keybase по сценарию трубопровода? Обновление: Пробовал с помощью -F флага с keybase после прочтения предложения здесь. Теперь ошибка выглядит так [ERRO keybase main.go: 90] 001 набор Unix /run/user/112/keybase/keybased.sock: подключение: нет такого файла или каталога Как я могу гарантировать, что Дженкинс может связаться с keybase по сценарию трубопровода? Обновление: Пробовал с помощью -F флага с keybase после прочтения предложения здесь. Теперь ошибка выглядит так [ERRO keybase main.go: 90] 001 набор Unix /run/user/112/keybase/keybased.sock: подключение: нет такого файла или каталога
Ann Kilzer
1

голосов
0

ответ
143

Просмотры

Jenkins - stop jobs automatically building after organization scan

I am automatically adding a GitHub Organization to my Jenkins instance when it starts up, but when it adds each job it executes it. This causes many many jobs to be executed, clogging up the build queue for a long time (hours). Is there a way to import each project through the Jenkinsfile, but not automatically run the build? I am running the following code when I startup the Jenkins instance: import jenkins.branch.OrganizationFolder import org.jenkinsci.plugins.github_branch_source.BranchDiscoveryTrait import org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator import org.jenkinsci.plugins.github_branch_source.OriginPullRequestDiscoveryTrait import org.jenkinsci.plugins.github_branch_source.GitHubConfiguration import static jenkins.model.Jenkins.instance as jenkins static Boolean organisationFolderExists(String name) { def folders = jenkins.items if (folders.isEmpty()) { return false } def organisation = folders.find { folder -> folder.name == name } return organisation } String lookupApiUri(def apiEndpoint) { GitHubConfiguration gitHubConfig = GitHubConfiguration.get() gitHubConfig.getEndpoints().findResult { it.name == apiEndpoint ? it.apiUri : null } } void createOrganisationFolder(def config) { def folder = jenkins.createProject(OrganizationFolder, config.name) folder.displayName = config.displayName folder.description = config.description GitHubSCMNavigator navigator = new GitHubSCMNavigator(config.name) navigator.credentialsId = config.project.scanCredentials navigator.apiUri = lookupApiUri(config.project.apiEndpoint) navigator.traits = [ new jenkins.scm.impl.trait.WildcardSCMSourceFilterTrait(config.project.repositoryNamePattern, ''), new jenkins.scm.impl.trait.RegexSCMHeadFilterTrait('.*'), new BranchDiscoveryTrait(3), new OriginPullRequestDiscoveryTrait(3), ] folder.navigators.replace(navigator) jenkins.save() folder.scheduleBuild(0) } if (!organisationFolderExists(config.name)) { createOrganisationFolder(config) } This successfully creates the Organization, but I need a way to stop each build executing. This is connecting to our internal GitHub Enterprise instance.
Xetius
1

голосов
0

ответ
431

Просмотры

Есть ли способ включить банку в общей библиотеке Дженкинс Pipeline папки уровня?

В Дженкинс Pipeline общих документов включают в себя следующее: каталог SRC должен выглядеть стандартную структуру каталогов источника Java. Этот каталог добавляется пути к классам при выполнении трубопроводов. Так что утверждение кажется неточным, когда банку (или файл класса) входит в структуру каталогов. Я встал экземпляр последней версии Дженкинс трубопровода и получил ошибку загрузки классов, когда я пытался импортировать класс из неявно загруженной папки уровня общей библиотеки в моем Jenkinsfile. Так есть ли способ включить баночку в пути к классам трубопровода так, чтобы классы фляги были доступны для трубопровода? PS Я не хочу, чтобы добавить баночку в Lib / доб дир в JDK / JRE Дженкинс используется, а-ля https://stackoverflow.com/a/41707846/676887.
6cef
1

голосов
1

ответ
150

Просмотры

Initialize Audit Trial Plugin in Jenkins using Groovy

Функция для плагина, который я пытался использовать, который не работает. Codebase плагина: GitHub ссылка
Ciado
1

голосов
1

ответ
1.7k

Просмотры

Дженкинс Docker декларативного .withRun

Я использую декларативный формат файлы трубопровод и работаю внутри грузчик контейнера, который определяется с помощью Dockerfile в корневом каталоге моего проекта. Моя Jenkinsfile выглядит следующим образом: трубопроводные {агент {dockerfile {additionalBuildArgs '--network хозяина'}} стадии {стадия ( 'Test') {шаги {ш 'pytest --version'}}} Я хотел бы передать дополнительные аргументы команда запуска докера похож на этот вопрос ... Как передать аргументы контейнера Docker при запуске изображения в Jenkinsfile можно ли сделать это в формате декларативного трубопровода, или я должен перейти? Edit: Это, по существу эквивалент того, что я пытаюсь сделать в не декларативной: узел {Защиту pytestImage = docker.build ( «pytest-образ: последние», '--network хозяин.
janDro
1

голосов
2

ответ
908

Просмотры

как запустить VARS / script.groovy из Дженкинс общей библиотеки

Я пытаюсь получить информацию от заводного скрипта, расположенного под Варсом называемого из разделяемой библиотеки Дженкинс класса, но получаю ошибку. некоторая информация: потребность - глобальный файл конфигурации. похож на Управление Jenkins -> Настройка системы -> Переменные окружения Цель - быть в состоянии получить глобальные значения внутри общей библиотеки без отправки параметров из Jenkinsfile. Мое решение - я пытался использовать «Варс / script.groovy», который работает на Jenkinsfile, но не в общую библиотеку. Файловая структура. ├── ЦСИ │ └── орг │ └── Дженкинс │ └──shared_library.groovy │── вары │ │ └── globals.groovy │── jenkinsfile.groovy VARS / globals.groovy четкости my_global () {возвращение 'my_global_name'} shared_library классового ПАКЕТ src.org.jenkins класс shared_library реализует сериализуемые {частных шагов shared_library (шаги) {это.
user1789357
1

голосов
0

ответ
264

Просмотры

Как отключить автоматическую SCM Trigger от jenkinsFile?

Я новичок в jenkinspipeline. У вас есть пример того, как я могу использовать jenkinsfile, чтобы предотвратить автоматический триггер Scm в jenkinsfile? Я надеялся на что-то вроде свойств [autoSCMTrigger лжи]. Я попытался сейчас, позволяя строить на провал, если определенные пары не проверяются вручную, и что работает сейчас, но это не выглядит хорошо, если каждый совершает вызывает сбой сборки. Я знаю, что вы можете установить на отключение автоматического SCM запускающего в разделе Конфигурации> построить триггер, но я не могу показаться, чтобы сохранить его как я использую Дженкинс проект или какой-то другой вариант. Я хочу знать, если есть способ, чтобы установить его в JENKINSFILE. например, свойство ([autoSCMTrigger лжи])
Fishfish
1

голосов
0

ответ
742

Просмотры

Groovy ava.lang.NoSuchMethodError: No such DSL method 'sendToSlack' found among steps

Я пытаюсь построить трубопровод с Groovy, все работает нормально, но когда я пытаюсь вызвать метод внутри каждого цикла он не может видеть его. (У меня есть очень базовые знания заводной). Здесь нет ошибки я получаю: java.lang.NoSuchMethodError: Нет такого DSL метода 'sendToSlack' найдено среди шагов [ansiblePlaybook, ansibleVault, архив, летучая мышь, строить, catchError, фотографии, deleteDir, реж, dockerFingerprintFrom, dockerFingerprintRun, dockerNode, ec2, эхо, emailext, emailextrecipients, envVarsForTool, ошибка, FileExists, findFiles, getContext, мерзавец, HTTPRequest, вход, isUnix, jiraComment, jiraIssueSelector, jiraSearch, JUnit, библиотека, libraryResource, нагрузка, почта, этап, узел, nodesByLabel, параллельные, PowerShell, свойства, publishHTML, PWD, ReadFile, readJSON, readManifest, readMavenPom, readProperties, readTrusted, readYaml, resolveScm, повторите, сценарий,
albanx
1

голосов
1

ответ
340

Просмотры

Api Дженкинс получить список параметров выбора

Я хотел бы получить список вариантов моего выбора параметра в моей работе с API Дженкинс я пытаюсь это: HTTP: // Дженкинс-URL / API / JSON дерева = рабочих мест [имя, строит [число, действия [параметры [ имя, значение]]]] и довольно = правда Но я получаю только значение «имя»: «контекст», «значение»: «Foo» Я бы этот выход: «имя»: «контекст», «значение»: «Foo, Foo ...»возможно ли это?
Matthis.h
1

голосов
1

ответ
517

Просмотры

Назначение выходного ш к переменному декларативному трубопроводу

Как я мог назначить выход ш к переменному с декларативным трубопроводом? Защиту arch_prefix () {сценарий {возвращение ш (сценарий: 'uname -m', returnStdout: верно) .trim ()}} // конец - дополнительный трубопровод {многочисленные функции агента ни среда {DOCKER_IMAGE = 'тест' АРХИТЕКТУРА = arch_prefix () DOCKER_IMG = "$ {DOCKER_IMAGE} - $ {АРХИТЕКТУРА}"} стадии {стадия ( 'Build') {параллельно {стадии ( 'Arch1') {агент {метка 'agent_a'} шаги {эхо "$ {DOCKER_IMG}"} этап ( 'ArCH2') {агент {метка 'agentb'} шаги {эхо "$ {DOCKER_IMG}"
tcp2008
1

голосов
1

ответ
79

Просмотры

Groovy представление уведомлений плагин в Jenkinsfile

Как представлять раздел Уведомления Endpoint конфигурации работы Дженкинс в Jenkinsfile (в виде заводной скрипта)? Я установил плагин уведомления, но я не уверен, как я хотел бы использовать это.
Amith Gopal
1

голосов
0

ответ
100

Просмотры

Дженкинс: Вызов глобальной библиотеки из библиотеки FOLDER

У меня есть глобальная библиотека, которая обычно загружается таким образом: @Library ( «») pipelineUtilities четкости Utils = новые com.booty.jenkins.libraries.pipelineUtilities () У меня есть библиотека папок (в каталоге VARS), который выглядит следующим образом : # заводной класс вары {публичный статический Струнный gitAuthorization = «Basic TEzZmVGMH ... lZMTNmZUYwZWU =»} Я ненавижу жестко прописывать такие вещи, как это, так что я хочу использовать функцию UTIL под названием getBasicAuth () публичное Строка getBasicAuth (String учетная запись, String пароль ) {Строка UserPass = счет + ":" + пароль Строка BasicAuth = "Основные" + userPass.getBytes () encodeBase64 () возвращает BasicAuth.} Когда я пытаюсь использовать только @Library без фактического использования библиотеки # заводная @Library! ( 'pipelineUtilities') класс вары {публичный статический Струнный gitAuthorization = «Основные TEzZmVGMH ...lZMTNmZUYwZWU =»} нет никаких проблем, но ничего интересного не происходит на самом деле, конечно же, мы просто обработали @library аннотации Однако:.! # заводной @Library („pipelineUtilities“) = Защита Utils новых com.booty.jenkins.libraries. pipelineUtilities () класс вары {частная Строка ServiceAccount = "xxxxyyyy" частная строка serviceAccountPassword = "yyyyzzzzzz" общественная Строка gitAuthorization = utils.getBasicAuth (ServiceAccount, serviceAccountPassword)} не проходит размораживание Utils = новое ком ..... шаг, не говоря . utils.getBasicAuth одна вызова () Что она делает это катастрофа каким-то таинственным образом так - 2 вопроса:. как я ставлю / поймать блок TRY внутри моего кода, так что я могу видеть то, что пошло не так в @library раздела Как я вызвать глобальную библиотеку внутри библиотеки папки ... Увы, все это так счетчик интуитивно :-( Спасибо,.а.
Amir
1

голосов
0

ответ
101

Просмотры

Дженкинс декларативный Pipeline - Выполнение этапов на нескольких узлах одновременно

Я хотел бы выполнить этапы конвейера на нескольких узлах одновременно. Если какие-либо стадия не будет работать на любом из узлов, то этапы, связанные с этим узлом должны дать сбой и другие узлы должны продолжать выполнение этапов. Например: У меня есть четыре узла - 1,2,3,4 и четыре этапа - А, В, С, D Каждый узел должен начать их выполнение стадии от А до Д Кроме того, все узлы должны начать в то время, если узел 2 выходит из строя, то другие узлы не должны остановить их исполнение, пожалуйста, помогите мне о том, как начать с этого проекта ПРИМЕЧАНИЕ: Я не хочу, чтобы переписать этот код еще раз в моем трубопроводе
RajSwetha
1

голосов
0

ответ
37

Просмотры

Why isn't maven including a needed transitive dependency?

I am converting our Jenkins Freestyle build to Declarative Pipeline mode. I am using the same POM files. But whenever i run the pipeline build, i see that the desired war is missing a transitive dependency. The Freestyle build includes that missing dependency however. The Main parent POM includes: net.sf.dozer dozer 5.5.1 org.slf4j slf4j-api org.slf4j jcl-over-slf4j The second parent includes section below, : net.sf.dozer dozer For both build processes, the dozer artifact is contained in the war file. But dozer contains a dependency of its own: commons-beanutils commons-beanutils 1.9.1 commons-logging commons-logging It is this commons-beanutils that I am missing from my final war when i do the Pipeline build. Since I am using the same POM files for both build processes, how can this be possible? Please help
Micky
1

голосов
0

ответ
651

Просмотры

Error “/usr/bin/env:'node': No such file or directory” in Jenkins pipeline

Нет такого файла или каталога я не установил Дженкинс на моем сервере с помощью докер (Jenkins изображений / Дженкинс: LTS) и я установил плагин NodeJS в Дженкинс. Я создал узел оснастки таким образом: Вы знаете, что может происходить? Приветствие.
Jose Sabater
1

голосов
1

ответ
44

Просмотры

запуск трубопровода Дженкинс в зависимости от другого статуса трубопровода

У меня есть следующие настройки: трубопроводном: начинается в 10 часов утра трубопровода B: начинается в 12 утра Теперь я хочу, чтобы добавить зависимость между этими двумя трубопроводами. Трубопроводный B должен начинаться только тогда, когда конвейер заканчивается преуспевающим состояние. Как я могу добиться этого?
Fabian

Просмотр дополнительных вопросов

Связанные вопросы