In meinem build.xml
habe ich einige Jobs definiert, die von Tools ausgeführt werden sollten, ich installed global
ly über Composer. Das heißt, die Binärdateien werden in /root/.composer/vendor/bin/
gespeichert (ich arbeite als root
auf meiner lokalen VM).Wie Jenkins mit Binärdateien aus einem Unterordner des Root-Benutzers arbeiten?
ich die PATH
Umgebungsvariable in den Komponisten configs (ohne es zu der Build-Prozess failing war):
der Bauprozess wird in Berechtigungsprobleme Jetzt läuft:
Started by user anonymous
Running as anonymous
Building in workspace /path/to/myproject
[myproject] $ ant
Buildfile: /path/to/myproject/build.xml
phpcs:
BUILD FAILED
/path/to/myproject/build.xml:30: Execute failed: java.io.IOException: Cannot run program "phpcs": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
...
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
... 24 more
Total time: 0 seconds
Build step 'Invoke Ant' marked build as failure
Finished: FAILURE
Die Binärdateien in COMPOSER_HOME/bin
sind für jedermann ausführbar:
[email protected]:~# chmod 777 /root/.composer/vendor/bin/
[email protected]:~# ls -lia /root/.composer/vendor/bin/
total 8
...
29651 lrwxrwxrwx 1 root root 42 Feb 17 14:49 phpcs -> ../squizlabs/php_codesniffer/scripts/phpcs
...
Ich habe die Authorize Project plugin installiert und versucht, den Build "als der Benutzer, der den Build ausgelöst hat", aber es hat nicht geholfen.
Aber das scheint nicht genug zu sein.
Wie geben Sie diese Berechtigungen Probleme lösen und Jenkins arbeiten mit Binärdateien von global
ly installiert Composer-Pakete?
Vielen Dank für Ihre Antwort! Ja, habe das einfach mit 'chmod -R 777/root/.composer/vendor /' und 'chown -R jenkins/root/.composer/vendor /' auf einmal überprüft. Dann 'cp -s /root/.composer/vendor/bin/*/var/lib/jenkins/bin /', 'chown -R Jenkins/var/lib/jenkins/bin', und' chmod -R 777/var/lib/jenkins/bin'. Immer noch "Erlaubnis verweigert". – automatix
Beachten Sie, dass "chmod" kein Werkzeug ist, um "checken" zu können, es ist der Brute-Force-Hammer, um die vom Noob-Administrator identifizierten Nägel zu fahren. – Sven
Was ich sagen möchte, ist, dass Sie, anstatt zu überprüfen, was die Berechtigungen sind, alles mit dem schrecklichsten Berechtigungssatz überschreiben und damit alle hilfreichen Hinweise auf das, was vor sich geht, löschen. Wie kann das möglicherweise helfen? Ich würde 'sudo chmod -R 777/vorschlagen, wenn ich böse wäre. – Sven