Все вот эти стандартные переменные билда Jenkins пробрасывать в окружение агента
https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables
И PowerShell может их прочитать
Привет! Использовать одинарные кавычки, одиночные или тройные
'
'''
никто не публикует артефакты в 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 - не хочется т.к. кол-во агентов не маленькое. И креды на узле хранить такая себе идея.
Может кто-то поделится опытом выкладывания артефактов на сетевую шару .
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]]
])
}
}
там в свежем лтс требуют свежие джарки для агентов (и ждк)
https://www.jenkins.io/doc/upgrade-guide/2.479/
господа, сегодня у меня отвалились агенты с jdk11, вероятно, какие-то плагины говнятся, есть быстрый метод проверки совместимости плагинов?
Читать полностью…Сделай helm template и посмотри что получается. Скорее всего переменные не на том уровне
Читать полностью…Надо смотреть на сам чарт какие там условия создания и тд и тп в helm template манифест ингресса выводится?
Читать полностью…Нашел - это я двоечник: этот шедевр требует вместо типа secret text использовать username от github, а токен в качестве пароля🤦♂️ Нет цензурных слов.
Читать полностью…Попробовать можно, но почему в выпадающем списке credentials он вообще ничего не показывает?
Ну и раньше же у меня с этим вообще вопросов не было - оно просто сразу завелось. Только не помню, как я его ставил до того, как начал наводить порядок - helm или манифестом.
Вот так должно сработать, так как Groovy передаст PowerShell выражение, которое уже PowerShell интерполирует
Читать полностью…странно, что не резолвится. возможно, специфика windows
можно попробовать обернуть в
withEnv(["WORKSPACE=${WORKSPACE}"]) { ... }Читать полностью…
Добрый день!
В пайплайне запускаю некий скрипт через 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
"""
}
Всем привет!
Я в дженкинсе сделал item, который привязан к проекту.
Соответственно, он по умолчанию при старте джобы выкачивается.
Как сделать так, чтобы сабмодули рекурсивно выкаичивались?
Переменная какая-то должна быть, наверное...
А еще корневой репозиторий выкачан через ssh. Но если сделать git sumbodule init —recursive, то нет доступа.
Что надо куда поставить?)
Подскажите, какой способ(название плагинан или mount) вы используете для выкладывания артефактов в сетевую папку, используя логин/пароль ?
Читать полностью…Тогда уже спрошу про 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