jenkins_ru | Unsorted

Telegram-канал jenkins_ru - jenkins_ru

-

Общаемся на темы, посвященныe Jenkins Видео с митапов: http://youtube.com/jenkinsru Место активного общения разработчиков https://gitter.im/jenkinsci-ru/publiс Самые свежие новости https://twitter.com/jenkins_ru

Subscribe to a channel

jenkins_ru

Все вот эти стандартные переменные билда Jenkins пробрасывать в окружение агента
https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables

И PowerShell может их прочитать

Читать полностью…

jenkins_ru

С двойными значение вычисляет и подставляет Groovy, потому Jenkins и ругается

Читать полностью…

jenkins_ru

в случае GString раскрытие происходит до старта повершелла.

Читать полностью…

jenkins_ru

блин, это ж повершелл. $env:WORKSPACE?

Читать полностью…

jenkins_ru

Привет! Использовать одинарные кавычки, одиночные или тройные

'
'''

А секреты скрипт получит из переменных окружения на уровне агента

Читать полностью…

jenkins_ru

никто не публикует артефакты в shared folder ?
Я попробовал плагин (https://github.com/jenkinsci/publish-over-cifs-plugin , https://plugins.jenkins.io/publish-over-cifs/)
Но у плагина нет поддержки CASC. А очень хотелось бы.
Сейчас публикую так:
withCredentials([usernamePassword(credentialsId:' ID CreDENTIAL ', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
sh "sudo mount -t cifs ${pathToArtifactFolder} -o domain=domain,username=${USERNAME},password=${PASSWORD} ${mountDir}"
копирую артефакты , а затем размонтирую.

НО: нужно убрать использование sudo для монтирования и казалось бы проблема была решена .
Но без sudo монтировать папку не дает. Выдает ошибку : " mount: only root can use "--options" option "
Выводить в fstab - не хочется т.к. кол-во агентов не маленькое. И креды на узле хранить такая себе идея.

Может кто-то поделится опытом выкладывания артефактов на сетевую шару .

Читать полностью…

jenkins_ru

scripted pipline (Выгружает репозиторий и сабмодули) :

String project = 'название проекта' //для создания папки
String projectGitRepo = 'репозиторий '
String projectGitRepoCredentials = 'id credentials '
String gitTag = 'название ветки или тега '


stage("Checkout scm ${platform}"){
dir("${project}") {
checkout([
$class: 'GitSCM',
branches: [[name: gitTag]],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'SubmoduleOption',
disableSubmodules: false,
parentCredentials: true,
recursiveSubmodules: true,
reference: '',
trackingSubmodules: false]],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: projectGitRepoCredentials,
url: projectGitRepo]]
])
}
}

Читать полностью…

jenkins_ru

там в свежем лтс требуют свежие джарки для агентов (и ждк)
https://www.jenkins.io/doc/upgrade-guide/2.479/

Читать полностью…

jenkins_ru

да регулярно обновляется, мастерхост полгода назад обновлял

Читать полностью…

jenkins_ru

господа, сегодня у меня отвалились агенты с jdk11, вероятно, какие-то плагины говнятся, есть быстрый метод проверки совместимости плагинов?

Читать полностью…

jenkins_ru

Понял, буду пробовать

Читать полностью…

jenkins_ru

Сделай helm template и посмотри что получается. Скорее всего переменные не на том уровне

Читать полностью…

jenkins_ru

Надо смотреть на сам чарт какие там условия создания и тд и тп в helm template манифест ингресса выводится?

Читать полностью…

jenkins_ru

Нашел - это я двоечник: этот шедевр требует вместо типа secret text использовать username от github, а токен в качестве пароля🤦‍♂️ Нет цензурных слов.

Читать полностью…

jenkins_ru

Попробовать можно, но почему в выпадающем списке credentials он вообще ничего не показывает?
Ну и раньше же у меня с этим вообще вопросов не было - оно просто сразу завелось. Только не помню, как я его ставил до того, как начал наводить порядок - helm или манифестом.

Читать полностью…

jenkins_ru

Вот так должно сработать, так как Groovy передаст PowerShell выражение, которое уже PowerShell интерполирует

Читать полностью…

jenkins_ru

а тебе надо, чтобы сам повершелл увидел

Читать полностью…

jenkins_ru

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

Читать полностью…

jenkins_ru

при одинарных тройных не резолвится $WORKSPACE. Вместо пути - пустота

Читать полностью…

jenkins_ru

странно, что не резолвится. возможно, специфика windows
можно попробовать обернуть в

withEnv(["WORKSPACE=${WORKSPACE}"]) { ... }

Читать полностью…

jenkins_ru

Добрый день!
В пайплайне запускаю некий скрипт через powershell. Скрипту нужно передать транспортный токен из кредов и WORKSPACE.

withCredentials([usernamePassword(credentialsId: 'jenkins-transport-token', usernameVariable: 'JENKINS_TRANSPORT_USERNAME', passwordVariable: 'JENKINS_TRANSPORT_PASSWORD')]) {
powershell """
venv\\Scripts\\activate
echo $WORKSPACE and now "$WORKSPACE"
python download_packages.py configurator-mt $JENKINS_TRANSPORT_PASSWORD $WORKSPACE --packages_file $WORKSPACE\\packages.json
"""
}


Если скрипт запустить с """ кавычками, то дженкинс жалуется, на небезопасную интеполяцию кредов (insecure interpolation of sensitive variables).
Если запустить скрипт с ''', то $WORKSPACE не интерполируется в полный путь.
Подскажите, пожалуйста, как разрешить дилемму?

Читать полностью…

jenkins_ru

Всем привет!
Я в дженкинсе сделал item, который привязан к проекту.
Соответственно, он по умолчанию при старте джобы выкачивается.
Как сделать так, чтобы сабмодули рекурсивно выкаичивались?
Переменная какая-то должна быть, наверное...

А еще корневой репозиторий выкачан через ssh. Но если сделать git sumbodule init —recursive, то нет доступа.
Что надо куда поставить?)

Читать полностью…

jenkins_ru

Подскажите, какой способ(название плагинан или mount) вы используете для выкладывания артефактов в сетевую папку, используя логин/пароль ?

Читать полностью…

jenkins_ru

jenkins не обновлял ?

Читать полностью…

jenkins_ru

точно

controller:
ingress:
hostName: ...

Читать полностью…

jenkins_ru

Там была какая-то ерунда с этим. Что то вроде ingress вложен в jenkins-controller

Читать полностью…

jenkins_ru

Через helm template какой манифест выдает?

Читать полностью…

jenkins_ru

Тогда уже спрошу про ingress, и как пофиксить его создание через helm.

Вот кусок моего values.yaml, и так не работает - объект ingress не создается вообще:
ingress:
enabled: true
ingressClassName: "nginx"
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
tls:
- hosts:
- jenkins.my-domain.local
secretName: my-domain-wildcard-tls
hostName: jenkins.my-domain.local
paths:
- path: /
pathType: Prefix
backend:
service:
name: jenkins
port:
number: 8080

А просто отдельный манифест работает:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jenkins-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
tls:
- hosts:
- jenkins.my-domain.local
secretName: my-domain-wildcard-tls
rules:
- host: jenkins.my-domain.local
http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: jenkins
port:
number: 8080

Читать полностью…

jenkins_ru

Тут непонятно почему так возможно скоуп креденшналов не global

Читать полностью…

jenkins_ru

Идея переделать авторизацию на SSH а не Token

Читать полностью…
Subscribe to a channel