Size: a a a

2021 March 10

S

Stepan in jenkins_ru
git log --pretty=%s --merges ..HEAD
источник

S

Stepan in jenkins_ru
Dmitry Burmistrov
короче, пробел между дефисами, юзай одинарные кавычки и обращайся к переменным окружения, а не к env
класс, с одинарными кавычками получилось справиться
большое спасибо, никогда бы не подумал, что в секции script {} будет работать интерполяция с одинарными кавычками
источник

DB

Dmitry Burmistrov in jenkins_ru
Stepan
опечатка. В коде у этой опции на самом деле нет пробела , это криво сюда вставилось

на самом деле я думал, что интерполяция работает только с двойными кавычками...но с одинарными сработали(открытие для меня) из parameters{string(name : 'END_COMMIT')}, а вот функция не сынтерполировалась:

def START_COMMIT = sh(script: "git describe --tags --abbrev=0", returnStdout: true)

sh 'git log --pretty=%s ${START_COMMIT}..${END_COMMIT}'
Интерполяция и не работает. Ты обращаешься не к объектам груви,а к переменным окружения
источник

S

Stepan in jenkins_ru
на самом деле я заменил def START_COMMIT на env.START_COMMIT, и это решило проблему
источник

DB

Dmitry Burmistrov in jenkins_ru
Я потому и предложил её отключить, чтобы избавиться от сайд-эффектов
источник

S

Stepan in jenkins_ru
полагаю, что это костыль) и есть решение изящнее
источник

S

Stepan in jenkins_ru
но в любом случае спасибо! долго ковырялся на одном месте
источник

ГВ

Григорий Вагайцев... in jenkins_ru
Всем привет! Может быть кто-то знает, как скрыть вывод всякой инфы в консоль по типу - URL, headers, http method для дженкинс плагина httpRequest?
источник

DS

Denis Sysadminoff in jenkins_ru
Привет, коллеги
Помогите глупому человеку. Не знаю как правильно решить задачу.
Есть сайт на ASP.NET,  есть 3 окружения(dev, qa, prod). Нужно подменять заглушки на реальные значения в web.config. Таких значений может быть большое количество и не хотелось бы это тащить в параметры билда. Как лучше поступить? Где лучше хранить реальные значения?
источник

DS

Denis Sysadminoff in jenkins_ru
Я думал сторону Config File Management, но хочется чтобы еще это было динамически, чтобы не править постоянно pipeline
источник

AM

Alexey M in jenkins_ru
Григорий Вагайцев
Всем привет! Может быть кто-то знает, как скрыть вывод всякой инфы в консоль по типу - URL, headers, http method для дженкинс плагина httpRequest?
Дёргать нативные методы Java/Groovy?)
источник

ГВ

Григорий Вагайцев... in jenkins_ru
Alexey M
Дёргать нативные методы Java/Groovy?)
Да блин только переделал с чистого груви на плагин httpRequests, т.к. оно удобнее))
источник

AM

Alexey M in jenkins_ru
Alexey M
Дёргать нативные методы Java/Groovy?)
Как пример небольшая часть нашей библиотеки:

protected void setBuildStatusForHash(String commitHash, BuildStatus status) {
   def req = new URL("${Consts.URL_STASH}/rest/build-status/1.0/commits/${commitHash}")
       .openConnection();

   def message = """\
       {
           "state": "${status.value}",
           "key": "${context.env.JOB_NAME}-${context.env.BUILD_NUMBER}",
           "name": "${context.env.JOB_NAME} #${context.env.BUILD_NUMBER}",
           "url": "${context.env.RUN_DISPLAY_URL}",
           "description": ""
       }
   """.stripIndent().replace('\n', '')

   req.setRequestMethod("POST")
   req.setDoOutput(true)
   req.setRequestProperty("Content-Type", "application/json")
   req.setRequestProperty("Authorization", "Basic ${baseAuth}")
   req.getOutputStream().write(message.getBytes("UTF-8"));
   def resRc = req.getResponseCode().toString()
}


Не вижу смысла тащить плагин с собой ради таких вещей 🤷
источник

DB

Dmitry Burmistrov in jenkins_ru
Alexey M
Как пример небольшая часть нашей библиотеки:

protected void setBuildStatusForHash(String commitHash, BuildStatus status) {
   def req = new URL("${Consts.URL_STASH}/rest/build-status/1.0/commits/${commitHash}")
       .openConnection();

   def message = """\
       {
           "state": "${status.value}",
           "key": "${context.env.JOB_NAME}-${context.env.BUILD_NUMBER}",
           "name": "${context.env.JOB_NAME} #${context.env.BUILD_NUMBER}",
           "url": "${context.env.RUN_DISPLAY_URL}",
           "description": ""
       }
   """.stripIndent().replace('\n', '')

   req.setRequestMethod("POST")
   req.setDoOutput(true)
   req.setRequestProperty("Content-Type", "application/json")
   req.setRequestProperty("Authorization", "Basic ${baseAuth}")
   req.getOutputStream().write(message.getBytes("UTF-8"));
   def resRc = req.getResponseCode().toString()
}


Не вижу смысла тащить плагин с собой ради таких вещей 🤷
как уже ранне тут говорилось - new URL() отрабатывает на мастере независимо от контекста node. а httpRequest этот контекст уважает
источник

AM

Alexey M in jenkins_ru
Dmitry Burmistrov
как уже ранне тут говорилось - new URL() отрабатывает на мастере независимо от контекста node. а httpRequest этот контекст уважает
Да, про этот нюанс я немного запамятовал, но нам это не особо важно
источник

Y

Yuriy in jenkins_ru
всем привет, я снова с простым вопросом - быстрый поиск не помог
Надо средствами гита  прочитать в переменную содержание одного файла из указанного branch-a (можно и скачать на крайний случай).
источник

I

Ivan in jenkins_ru
Всем привет, подскажите, может не я один сломал после обновления плагина для BitBucket.. мультбранч.

com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketRequestException: HTTP request error. Status: 401: .
HttpResponseProxy{HTTP/1.1 401  [X-AREQUESTID: @1LDO9SDx808x205720483x2, X-ASEN: SEN-L16564761, WWW-Authenticate: Basic realm="Atlassian Bitbucket", Content-Type: application/json;charset=UTF-8, Transfer-Encoding: chunked, Vary: Accept-Encoding, Date: Wed, 10 Mar 2021 10:28:48 GMT] org.apache.http.client.entity.DecompressingEntity@db694}
 at com.cloudbees.jenkins.plugins.bitbucket.server.client.BitbucketServerAPIClient.getRequest(BitbucketServerAPIClient.java:861)
 at com.cloudbees.jenkins.plugins.bitbucket.server.client.BitbucketServerAPIClient.getResources(BitbucketServerAPIClient.java:813)
 at com.cloudbees.jenkins.plugins.bitbucket.server.client.BitbucketServerAPIClient.getServerBranches(BitbucketServerAPIClient.java:566)
 at com.cloudbees.jenkins.plugins.bitbucket.server.client.BitbucketServerAPIClient.getBranches(BitbucketServerAPIClient.java:557)
 at com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSource.retrieve(BitbucketSCMSource.java:792)
 at jenkins.scm.api.SCMSource.fetch(SCMSource.java:582)
 at org.jenkinsci.plugins.workflow.multibranch.SCMBinder.create(SCMBinder.java:98)
 at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:309)
 at hudson.model.ResourceController.execute(ResourceController.java:97)
 at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE

После обновления плагина клонирование сломалось(
BitBucket: v5.15.1 версии
Jenkins: 2.263.4
Плагин откатил на: 2.9.6

Но клонирование даже не проходит(
источник

Y

Yuriy in jenkins_ru
Yuriy
всем привет, я снова с простым вопросом - быстрый поиск не помог
Надо средствами гита  прочитать в переменную содержание одного файла из указанного branch-a (можно и скачать на крайний случай).
вроде решил проблему - скачал файл в воркспейс -
вот такой командой
checkout([$class: 'GitSCM', branches: [[name: 'branch-name']], extensions: [[$class: 'SparseCheckoutPaths', sparseCheckoutPaths: [[path: 'path-to-file/file']]]], userRemoteConfigs: [[credentialsId: 'some-creds', url: 'some-url']]])

теперь чтобы прочитать его (текст) содержимое в переменную. (https://www.jenkins.io/doc/pipeline/steps/workflow-basic-steps/#readfile-read-file-from-workspace)
источник

DB

Dmitry Burmistrov in jenkins_ru
sh('cat filename', returnStdout: true)
источник

DB

Dmitry Burmistrov in jenkins_ru
или
content = readFile ...
источник