Próbuję skonfigurować środowisko CI dla aplikacji na iOS. Do tej pory stałam xcodebuild zbudować build testowy prawidłowo z wiersza polecenia, ale gdy Jenkins próbuje wykonać go pojawia się następujący odczytać w konsoli:Jenkins nie może uruchomić xcodebuild z folderu projektu
Started by user anonymous
Building in workspace /Users/Shared/Jenkins/Home/jobs/Unit Tests/workspace
Working directory is /Users/iosappdev/Documents/Xcode Projects/rules.
[rules] $ /usr/bin/xcodebuild -version
FATAL: Cannot run program "/usr/bin/xcodebuild" (in directory "/Users/iosappdev/Documents/Xcode Projects/rules"): error=13, Permission denied
java.io.IOException: Cannot run program "/usr/bin/xcodebuild" (in directory "/Users/iosappdev/Documents/Xcode Projects/rules"): error=13, Permission denied
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at hudson.Proc$LocalProc.<init>(Proc.java:244)
at hudson.Proc$LocalProc.<init>(Proc.java:216)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:707)
at hudson.Launcher$ProcStarter.start(Launcher.java:338)
at hudson.Launcher$ProcStarter.join(Launcher.java:345)
at au.com.rayh.XCodeBuilder.perform(XCodeBuilder.java:224)
jakieś przemyślenia? Jestem całkiem nowy w Jenkins, ale zrobiłem co mogłem, aby odpowiedzieć na to pytanie z Google Fu bezskutecznie. Pierwotnie napotkałem ten problem z ręczną instalacją Jenkinsa (homebrew technicznie), ale ostatnio użyłem instalatora OSX i spowodowało to ten sam błąd.
Zgaduję, że ma to więcej wspólnego z uprawnieniami Unix/Linux/OSX niż Jenkins/Xcode, ale nie ma wystarczającej wiedzy, aby to ustalić.
Edycja uprawnienia katalogu
projektu ustawiona na 775.
Ja również próbował zmianę własności do użytkownika Jenkins biegnie dalej.
Oto wyjście, gdy próbowałem uruchomić xcodebuild jako użytkownik demona ($ sudo -u demon xcodebuild):
dev-imac:rules iosappdev$ sudo -u daemon xcodebuild
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
2012-03-21 11:05:46.161 xcodebuild[1411:70b] [MT] DVTAssertions: ASSERTION FAILURE in /SourceCache/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-1196/Xcode3Sources/XcodeIDE/Frameworks/DevToolsBase/pbxcore/Xcode3Model/Xcode3Project.m:266
Details: Assertion failed: [directoryPath isAbsolutePath]
Object: <Xcode3Project>
Method: +projectFilesInDirectory:
Thread: <NSThread: 0x40010a260>{name = (null), num = 1}
Hints: None
Backtrace:
0 0x000000010025b85f -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in DVTFoundation)
1 0x000000010025b6b5 _DVTAssertionFailureHandler (in DVTFoundation)
2 0x00000001011559bc +[Xcode3Project projectFilesInDirectory:] (in DevToolsCore)
3 0x00000001008a424b -[Xcode3CommandLineBuildTool _resolveInputOptions] (in Xcode3Core)
4 0x00000001008aa097 -[Xcode3CommandLineBuildTool run] (in Xcode3Core)
5 0x00000001001d7db6 (in xcodebuild)
6 0x00000001001d7c2c (in xcodebuild)
Czy możesz opisać, jak wyglądają "odpowiednie" uprawnienia? xcodebuild ma 755, co według mnie pozwoliłoby każdemu użytkownikowi uruchomić program z dowolnego katalogu. Katalog projektu ma również 755 uprawnień. Użytkownik Jenkinsa jest użytkownikiem demona. – cesarislaw
Co właściwie miałem na myśli to, że należy uruchomić Jenkinsa z użytkownikiem, który jest właścicielem katalogu. Możesz też zrobić zapis. –
Próbowałem obu w różnych punktach. Sprawdzono ponownie (ustawiono uprawnienia do katalogu na 775 i prawa własności do użytkownika demona) i wciąż otrzymywałem błąd odmowy uprawnień. – cesarislaw