Size: a a a

2021 May 04

DS

Dmitry Sergeev in jenkins_ru
Все же просто "" - интерполяция работает, '' - не работает. Как и в куче других языках
источник

r

rlabs in jenkins_ru
источник

r

rlabs in jenkins_ru
попробуйте переименовать переменную :-))
источник

RT

Roman Trawin in jenkins_ru
дело в том, что '$USERNAME' он принимает так как и должен принимать, а вторую переменную '$PASSWORD' не принимает. Похоже на какую то багулю или я хз что
источник

DS

Dmitry Sergeev in jenkins_ru
что значит не принимает?
Если ты используешь одинарные ковычки, следовательно в баш улетает строка $PASSWORD. Для баша эта переменная существует? Проверь переменные среды
источник

DS

Dmitry Sergeev in jenkins_ru
Там переменая либо есть либо нет
источник

RT

Roman Trawin in jenkins_ru
попробовал переименовать PASSWORD в PASSWD — не помогло
источник

RT

Roman Trawin in jenkins_ru
Если использовать двойные кавычки, например — "$USERNAME" — то дженкинс считает это несекурным, о чем пишет в своей доке: https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#string-interpolation и сообщает в ходе выполнения джобы
[Pipeline] sh
Warning: A secret was passed to "sh" using Groovy String interpolation, which is insecure.
    Affected argument(s) used the following variable(s): [PASSWD]
    See https://jenkins.io/redirect/groovy-string-interpolation for details.

Если одинарные, то но принимает норм. Но почему то только для одной переменной. А для переменной PASSWD не принимает
источник

DB

Dmitry Burmistrov in jenkins_ru
Юзайте withEnv
источник

r

rlabs in jenkins_ru
withCredentials разве не то же самое делает?
источник

DB

Dmitry Burmistrov in jenkins_ru
Ну, да. Туплю
источник

B

Boris in jenkins_ru
Оказалось что при создании Pod template с одним image jenkins/jnlp-agent-maven запускались два контейнера:
jenkins/jnlp-agent-maven и jenkins/inbound-agent:4.3-4
Во втором maven нет и почему-то билд выполнялся именно в нем...
Создал проект pipeline и указал container  - все получилось!!!
источник

HC

Henry Chinaski in jenkins_ru
аминь)
источник

DS

Dmitry Sergeev in jenkins_ru
ты вникни хотя бы. Там же все логично с интерполяцией

node {
   withCredentials([usernamePassword(credentialsId: 'test',
                                             usernameVariable: 'USERNAME',
                                             passwordVariable: 'PASSWORD')]) {
                                                 
       sh 'env | grep -E "USERNAME|PASSWORD"'
       sh 'echo "$USERNAME - $PASSWORD"> pass.txt'
       sh 'cat pass.txt'
   }
}

14:12:45  [Pipeline] withCredentials
14:12:45  Masking supported pattern matches of $USERNAME or $PASSWORD
14:12:45  [Pipeline] {
14:12:45  [Pipeline] sh
14:12:45  + env
14:12:45  + grep -E 'USERNAME|PASSWORD'
14:12:45  USERNAME=****
14:12:45  PASSWORD=****
14:12:46  [Pipeline] sh
14:12:46  + echo '**** - ****'
14:12:46  [Pipeline] sh
14:12:47  + cat pass.txt
14:12:47  **** - ****
14:12:47  [Pipeline] }
14:12:47  [Pipeline] // withCredentials
14:12:47  [Pipeline] }
14:12:47  [Pipeline] // node
14:12:48  [Pipeline] End of Pipeline

```
https://i.ibb.co/gJ9t56B/image.png
источник

U

Ugly in jenkins_ru
даа.. было бы странно если ты в другом контейнере нашел мавен))
источник

DS

Dmitry Sergeev in jenkins_ru
есть интерполяция переменных. Ты либо передаешь их через переменные среды и используешь потом в баше. Либо передаешь их как значение.
Передавать как значение он считает не секурным, потому что это палится как минимум через ps для всех пользователей, ну передавай через переменные среды.
Если у тебя переменная среды не создается, ну так и пиши про это и разбирайся с этой проблемой. С ковычками  все просто. Достаточно знать что "" - интерполяция работает, '' - не работает. Единственное правило
источник

AS

Anatoly Shirokov in jenkins_ru
то что он не принимает PASSWORD - это какая-то наведенная проблема. ты можешь создать пустой pipeline?
pipeline {
   agent any

   stages {
       stage('Hello') {
           steps {
               withCredentials([usernamePassword(credentialsId: 'test', passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME')]) {
                   sh 'echo l/p: $USERNAME/$PASSWORD'
               }
           }
       }
   }
}

что у тебя выводит?
источник

RT

Roman Trawin in jenkins_ru
Он принимает $PASSWORD в команде, но считает что написано несекурно, т.к. по какой то причине думает, что переменная PASSWORD не в одинарных кавычках. Такой пайплайн как у вас отрабатывает без варна о несекурности PASSWORD
источник

AS

Anatoly Shirokov in jenkins_ru
тогда давай версии сравним. у тебя какой jenkins?
источник

RT

Roman Trawin in jenkins_ru
2.277.3
источник