В настоящее время моя установка Jenkins ограничена одним исполнителем. Это в значительной степени требование нашей сборки, потому что у нас есть специальный файл журнала, который создается при каждой сборке. Чтобы получить нескольких исполнителей, я просто настроил рабов на локальном компьютере. Я хотел, чтобы все наши подчиненные использовали одно и то же рабочее пространство, поэтому я просто создал символическую ссылку. Тем не менее, я должен был chmod 775 в рабочей области, чтобы он был больше группового рабочего пространства. В любом случае, если несколько рабов jenkins совместно используют одно рабочее пространство?
Редактировать: в отношении моего ограничения 1 исполнителя. Наше приложение представляет собой приложение ActionScript, и у нас есть много модульных тестов, которые выполняются во время нашей сборки и создают флэш-журнал. Мы хотим иметь возможность иметь флэш-журнал для каждой сборки. Флэш-журнал Unix хранится в домашнем каталоге пользователя. Начиная с версии 10.1, вы не можете изменить местоположение в mm.cfg. Поскольку Jenkins работает как пользователь, мы не можем одновременно запускать несколько тестов flexunit и можем правильно записывать флэш-журнал.
Вот некоторые неудачи с перми, которые я получаю:
Fetching upstream changes from git@company:repo/repo.git
ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway
hudson.plugins.git.GitException: Error performing command: git fetch -t git@company:repo/repo.git
+refs/heads/*:refs/remotes/origin/*
Command "git fetch -t git@company:repo/repo.git +refs/heads/*:refs/remotes/origin/*" returned status code 128: error: insufficient permission for adding an object to repository database .git/objects
fatal: failed to write object
fatal: unpack-objects failed
at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:776)
at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:741)
at hudson.plugins.git.GitAPI.fetch(GitAPI.java:190)
at hudson.plugins.git.GitAPI.fetch(GitAPI.java:978)
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:765)
at hudson.plugins.git.GitSCM.access$100(GitSCM.java:80)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1003)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:970)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2045)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:287)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Вызвано: hudson.plugins.git.GitException: Команда «git fetch -t git @ company: repo / repo.git + refs /head / : refs / remotes / origin / » вернула статус код 128: ошибка: недостаточно прав для добавления объекта в базу данных хранилища .git / objects