Jenkins 和配置文件

Jenkins 和配置文件

我正在尝试设置我的 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>

情况还是一样...

答案1

这个脚本是否需要你在 shell 配置文件中设置的任何变量才能正常工作?

我在启动时运行 launchd 脚本时确实遇到了问题,而当我在命令行上运行它们时,它们总是运行良好。

您也许可以尝试在启动从属进程的脚本顶部包含 .bash_profile 或 .bashrc(或两者,如果需要)的加载,看看是否有帮助。

答案2

解决方案非常简单:

我的 plist 文件位于 /Library/LaunchDaemons/ 目录中,该目录中的 plist 文件在系统启动时自动启动,但问题是用户不正确,尽管此文件中的命令中有所有变量。

所以我需要做的就是将上面的 .plist 文件放入文件夹 [jenkins home]/Library/LaunchAgents 。

注意设置jenkins为默认用户登录!

相关内容