Size: a a a

2021 July 21

J

John Roe in jenkins_ru
источник

DS

Dmitry Sergeev in jenkins_ru
извлеки все билды и посмотри какие там хеши, найди нужный.
источник

DS

Dmitry Sergeev in jenkins_ru
я тебя расстрою но Jenkins плагин гит как раз так и делает, он кидает askpass и настраивает git credentials. Просто потом чистит за собой
источник

DS

Dmitry Sergeev in jenkins_ru
json/yaml это текст. Перевай, кто мешает
источник

M

MAdMAx in jenkins_ru
а если там пара мегабайт? )
источник

DS

Dmitry Sergeev in jenkins_ru
артефактами
источник

ИР

Иван Резвецов... in jenkins_ru
Мне нужно сделать git pull через remote shell, поэтому плагины отпадают
источник

А

Алексей in jenkins_ru
Уже помогли, спасибо!
источник

DS

Dmitry Sergeev in jenkins_ru
Я тебе говорю про то, что нет смысла бояться делать так, поскольку jenkins так и делает когда клонит репу из https. Нужно просто почистить за собой
Можешь обертку написать примерно такую
```
def call(credId, Closure action) {
   def askPassFile = sh (returnStdout: true, script: 'mktemp').trim()
   withCredentials([
       usernamePassword(credentialsId: credId, passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USER'),
   ]) {
       try {
           sh "printf '#!/usr/bin/env bash\n echo \"${GIT_PASSWORD}\"' > ${askPassFile}"
           sh "chmod +x ${askPassFile}"
           env.GIT_ASKPASS = askPassFile
           sh "git config credential.https://github.com.username ${GIT_USER}"
           action()
           sh "rm -fv ${askPassFile}"
       } catch(e) {
           sh "rm -fv ${askPassFile}"
           throw e
       }
   }
}

```

Только sh вызовы поменять на свой remote shell
А потом в пайплайне вызывать так
```
gitAskPassWrapper('yoursecretId') {
 // нужные тебе действия которые будут выполняться при вызове action()
}
```
источник

DS

Dmitry Sergeev in jenkins_ru
но скорее всего проще клонить через ssh и ssh-agent в таком кейсе
источник

u

unixshaman in jenkins_ru
Если я использую JCASC, то как задаются пароли в yaml конфиге? Они ведь получается для каждого Jenkins по разному шифруются
источник

DB

Dmitry Burmistrov in jenkins_ru
мы храним секреты в hc vault, в jcasc только переменные
источник

M

MAdMAx in jenkins_ru
Hashicorp Vault plugin
источник

u

unixshaman in jenkins_ru
Спасибо за ответы, попробую. Vault уже есть, просто не думал что в этом месте его получится использовать
источник

SD

Stas Drozdov in jenkins_ru
Парни, подскажите, как можно сделать зависимые билды? Именно не джобы, а билды?
Есть некий апстрим пайплайн, который читает определнную мэпу и потом запускает N даунстрим пайплайнов, на основании того, что он в ней вычитал.
И появилась неприятная ситуация, что один из даунстрим пайплайнов может нуждаться в том, что собирает другой даунстрим пайплайн и пушит в регистри. Появляется сиутация, что если оно еще не собралось, то он упадет
источник

DB

Dmitry Burmistrov in jenkins_ru
Можно разрулить через lockable resources. Или продумать процесс заново
источник

DB

Dmitry Burmistrov in jenkins_ru
Я - за второй вариант
источник

II

Igor Ivanov in jenkins_ru
если хочется поупарываться, то можно попробовать залезть в потроха дженка через Jenkins.instance.GetItems() (или как там его), выдернуть все билды за последнее N времени, найти подходящий по параметрам, и в цикле поспать пока он не закончится
источник

II

Igor Ivanov in jenkins_ru
но это прямо крепкий чай, и наверное курить его не стоит без веских на то причин
источник

DS

Dmitry Sergeev in jenkins_ru
да,  так и делаю. Вариант вполне
источник