У меня есть проект NodeJS 'hello world', который я пытаюсь построить на новой установке Jenkins (работающей на Ubuntu 18.04.3 LTS на сервере Digital Ocean).У меня ограниченный опыт работы с Linux, поэтому, пожалуйста, дайте мне знать, что мне здесь не хватает.
Сборка Jenkins "execute shell":
whoami
npm install
./script/test
Вывод консоли Jenkins:
Started by user twulz
Running as SYSTEM
Building in workspace /var/lib/jenkins/workspace/node-app
No credentials specified
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url https://github.com/Twulz/node-app.git # timeout=10
Fetching upstream changes from https://github.com/Twulz/node-app.git
> git --version # timeout=10
> git fetch --tags --progress -- https://github.com/Twulz/node-app.git +refs/heads/*:refs/remotes/origin/*
> git rev-parse refs/remotes/origin/master^{commit} # timeout=10
> git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision 81d9f909cfd34cd5eb65a123dd9f2a1e67686512 (refs/remotes/origin/master)
> git config core.sparsecheckout # timeout=10
> git checkout -f 81d9f909cfd34cd5eb65a123dd9f2a1e67686512
Commit message: "Solve vulnerabilities"
> git rev-list --no-walk 81d9f909cfd34cd5eb65a123dd9f2a1e67686512 # timeout=10
[node-app] $ /bin/sh -xe /tmp/jenkins4626689890347957662.sh
+ whoami
jenkins
+ npm install
audited 12356 packages in 4.203s
found 0 vulnerabilities
+ ./script/test
/tmp/jenkins4626689890347957662.sh: 4: /tmp/jenkins4626689890347957662.sh: ./script/test: Permission denied
Build step 'Execute shell' marked build as failure
Finished: FAILURE
Так что я думаю, что проблема в том, что у пользователя jenkins нет разрешения на выполнение тестового скрипта / var / lib / jenkins / workspace / script / test.
В командной строке я запустил следующие команды, чтобы попытаться изменить разрешения:
$cd /var/lib/jenkins/workspace/node-app/script
$ls -l test
-rw-r--r-- 1 jenkins jenkins 51 Sep 22 07:30 test
$sudo chmod -R 757 /var/lib/jenkins/workspace/node-app
$sudo systemctl restart jenkins
$ls -l test
-rwxr-xrwx 1 jenkins jenkins 51 Sep 22 07:35 test
Затем выбрал «Build Now» в моем проекте jenkins, сразу после того, как я снова запустил:
$ls -l test
-rw-r--r-- 1 jenkins jenkins 51 Sep 22 07:50 test
Я также пытался дать рекурсивные разрешения всей папке jenkins или только тестовому файлу, но оба по-прежнему не удавались: sudo chmod -R 757 /var/lib/jenkins
или sudo chmod -R 757 /var/lib/jenkins/workspace/node-app/script/test
Я повторно применил изаново сохранил мою конфигурацию в jenkins, как было предложено в другом потоке, но изменений не было.
Итак, что-то в процессе сборки сбрасывает разрешения - как я могу убедиться, что пользователь jenkins сохраняет права доступа для запуска этогосценарий