Я пытаюсь настроить свой MAC для подключения к Jenkins и быть готовым к автоматической сборке. Мне удалось создать сервис, который подключается к Jenkins, но что-то не так.

Это мой файл plist:

<key>Label</key>
    <string>com.example.ci</string>
    <key>ProgramArguments</key>
    <array>
        <string>sh</string>
        <string>/Users/Shared/Jenkins/Home/my_scripts/run_jenkins.sh</string>
    </array>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/Users/Shared/Jenkins/Home/stdout.log</string>
    <key>StandardErrorPath</key>
 <string>/Users/Shared/Jenkins/Home/error.log</string>

это мой run_jenkins.sh:

cd /Users/Shared/Jenkins/Home/
sudo -u jenkins java -jar slave.jar -jnlpUrl http://secret.mission:8080/computer/ios-slave/slave-agent.jnlp -secret 841557ed7843ac76fe1618e375

ПРОБЛЕМА:

 $ /usr/bin/security find-identity -p codesigning -v
     0 valid identities found

это происходит, когда я пытаюсь собрать сразу после запуска. Конечно после этого сборка не удалась.

Когда я иду sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist а затем sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist результат будет:

$ /usr/bin/security find-identity -p codesigning -v
  [.. ]
     4 valid identities found

и сборка завершена. Почему этот MAC не может найти эти профили, когда он запускается при запуске, и как это исправить?

РЕДАКТИРОВАТЬ

Я отредактировал мой файл plist:

    <key>UserName</key>
    <string>jenkins</string>
    <key>Label</key>
    <string>com.example.ci</string>
    <key>ProgramArguments</key>
    <array>
        <string>sudo</string>
        <string>-u</string>
        <string>jenkins</string>
        <string>/usr/bin/java</string>
        <string>-Djava.awt.headless=true</string>
        <string>-jar</string>
        <string>/Users/Shared/Jenkins/Home/slave.jar</string>
        <string>-jnlpUrl</string>
        <string>http://secret.mission:8080/computer/ios-slave/slave-agent.jnlp
</string>
        <string>-secret</string>
        <string>841557ed7843ac76fe1618e375
</string>
    </array>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/Users/Shared/Jenkins/Home/stdout.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/Shared/Jenkins/Home/error.log</string>

и все та же ситуация ...

2 ответа2

0

Требует ли этот скрипт каких-либо переменных, которые установлены в вашем профиле оболочки, чтобы работать должным образом случайно?

Я определенно столкнулся с проблемами при запуске сценариев запуска при запуске, которые всегда работали нормально, когда я запускал их в командной строке.

Вы можете попытаться включить загрузку вашего .bash_profile или .bashrc (или обоих, если необходимо) вверху скрипта, запускающего ведомое устройство, и посмотреть, поможет ли это.

0

Решение было очень простым:

мой plist-файл находился в каталоге /Library /LaunchDaemons /, в котором plist-файлы запускаются автоматически при запуске системы, но проблема заключалась в том, что пользователь не был корректным, несмотря на все переменные в командах в этом файле.

Поэтому все, что мне нужно было сделать, это поместить файл .plist сверху в папку [jenkins home]/Library/LaunchAgents.

ЗАМЕТЬТЕ, что я настроил jenkins как пользователя по умолчанию для входа!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .