Size: a a a

2020 October 16

E

Elenhil in jenkins_ru
Maksym Sivash
в воркспейсе нет этого файла
Значит не там смотришь
источник

MS

Maksym Sivash in jenkins_ru
когда делал через freestyle project оно там лежало
источник

E

Elenhil in jenkins_ru
Рад за тебя)
источник

MS

Maksym Sivash in jenkins_ru
а когда через pipeline - нет
источник

MS

Maksym Sivash in jenkins_ru
Elenhil
Значит не там смотришь
как не там если я допустим делаю echo в файл и он появляется в воркспейсе, а файл с параметра - нет
источник

E

Elenhil in jenkins_ru
Есть. Оно лежит в воркспейсе с именем которое ты указал в параметре
источник

E

Elenhil in jenkins_ru
File name
источник

MS

Maksym Sivash in jenkins_ru
там нет ниодного файла кроме того что был эхом создан
источник

E

Elenhil in jenkins_ru
Запаузь ддобу, зайди в воркспейс да посмотри
источник

MS

Maksym Sivash in jenkins_ru
Elenhil
Запаузь ддобу, зайди в воркспейс да посмотри
поставил в средине слип
источник

MS

Maksym Sivash in jenkins_ru
файл не появится
источник

E

Elenhil in jenkins_ru
Ну значит баг
источник

E

Elenhil in jenkins_ru
источник

MS

Maksym Sivash in jenkins_ru
pipeline {
   options {
       timestamps()
   }
   parameters {
       file(name: 'eee')
       file description: '', name: 'text.txt'
   }
   stages {
       stage("test") {
           steps{
               script{
                   sleep 30
                   sh "echo fff > t.txt"
                   sh "pwd"
                   sh "cat t.txt"
               }
           }
       }
   }
}
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
там бага. Вот так попробуйте
import hudson.FilePath
import hudson.model.ParametersAction
import hudson.model.FileParameterValue
import hudson.model.Executor

def call(String name, String fname = null) {
   def paramsAction = currentBuild.rawBuild.getAction(ParametersAction.class);
   if (paramsAction != null) {
       for (param in paramsAction.getParameters()) {
           if (param.getName().equals(name)) {
               if (! (param instanceof FileParameterValue)) {
                   error "unstashParam: not a file parameter: ${name}"
               }
               if (env['NODE_NAME'] == null) {
                   error "unstashParam: no node in current context"
               }
               if (env['WORKSPACE'] == null) {
                   error "unstashParam: no workspace in current context"
               }

      if (env['NODE_NAME'].equals("master")) {
          workspace = new FilePath(null, env['WORKSPACE'])
      }else{
                       workspace = new FilePath(Jenkins.getInstance().getComputer(env['NODE_NAME']).getChannel(), env['WORKSPACE'])
      }

               filename = fname == null ? param.getOriginalFileName() : fname
               file = workspace.child(filename)

               destFolder = file.getParent()
               destFolder.mkdirs()

               file.copyFrom(param.getFile())
               return filename;
           }
       }
   }
   error "unstashParam: No file parameter named '${name}'"
}

В пайплайне юзать так:
def file_in_workspace = unstashParam "backup.tar.gz"

Файл параметр имеет имя "backup.tar.gz"
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
это функция unstashParam из одноименного файла шаредлибы
источник

MS

Maksym Sivash in jenkins_ru
Viacheslav Dubrovskyi
там бага. Вот так попробуйте
import hudson.FilePath
import hudson.model.ParametersAction
import hudson.model.FileParameterValue
import hudson.model.Executor

def call(String name, String fname = null) {
   def paramsAction = currentBuild.rawBuild.getAction(ParametersAction.class);
   if (paramsAction != null) {
       for (param in paramsAction.getParameters()) {
           if (param.getName().equals(name)) {
               if (! (param instanceof FileParameterValue)) {
                   error "unstashParam: not a file parameter: ${name}"
               }
               if (env['NODE_NAME'] == null) {
                   error "unstashParam: no node in current context"
               }
               if (env['WORKSPACE'] == null) {
                   error "unstashParam: no workspace in current context"
               }

      if (env['NODE_NAME'].equals("master")) {
          workspace = new FilePath(null, env['WORKSPACE'])
      }else{
                       workspace = new FilePath(Jenkins.getInstance().getComputer(env['NODE_NAME']).getChannel(), env['WORKSPACE'])
      }

               filename = fname == null ? param.getOriginalFileName() : fname
               file = workspace.child(filename)

               destFolder = file.getParent()
               destFolder.mkdirs()

               file.copyFrom(param.getFile())
               return filename;
           }
       }
   }
   error "unstashParam: No file parameter named '${name}'"
}

В пайплайне юзать так:
def file_in_workspace = unstashParam "backup.tar.gz"

Файл параметр имеет имя "backup.tar.gz"
получается ты так же через параметры передаёшь файл и потом вызываешь вот ту функцию?
источник

VD

Viacheslav Dubrovsky... in jenkins_ru
да
источник

S

Sebor in jenkins_ru
Коллеги, подскажите, можно ли как-то влиять на премишины сикрет-файла?
Проблема в том, что при монтировании его в докер контейнер, пользователь внутри контейнера не может его прочитать
источник

PK

Pavel Kamyshev in jenkins_ru
Sebor
Коллеги, подскажите, можно ли как-то влиять на премишины сикрет-файла?
Проблема в том, что при монтировании его в докер контейнер, пользователь внутри контейнера не может его прочитать
источник