Jenkins

来自 ArchWiki

Jenkins 是一个开源的持续集成服务器,使用 Java 编写。它能够运行计划的自动化构建和托管软件项目的测试套件。例如,构建或测试可以按每次提交触发,也可以按日历驱动的方式触发。Jenkins 因此依赖于通过版本控制系统(参见 git)和自动化构建过程管理的代码。请注意,Jenkins 不仅限于 Java 应用程序,而且适用于管理所有常用语言的项目。它的功能可以通过插件进一步扩展。

安装

安装 jenkins 以获取最新的稳定版本,或 jenkins-ltsAUR 以获取长期支持版本。该软件包将使用 systemd-sysusers 为守护程序创建一个 Jenkins 用户。如果运行在仅有控制台访问权限的服务器上,另请安装软件包 fontconfigfreetype2

配置

为了启用 jenkins,您需要安装 jre11-openjdkjre17-openjdk,并且您的 Java 运行时环境路径必须位于 /etc/conf.d/jenkins 的 jenkins 配置文件中的第一行,如果不是这种情况,jenkins.service 将无法启动

项目配置可以使用内置的 Web 界面完成。要访问它,启动/启用 jenkins.service

您现在可以使用浏览器打开 https://127.0.0.1:8090 并开始设置 Jenkins。

运行 Jenkins 守护程序的配置文件位于 /etc/conf.d/jenkins。它由相应的 .service 文件引用,并在重启后立即生效。

jenkins 监听 0.0.0.0,并且可以立即远程访问。如果不需要这样(例如在测试服务器上),请考虑将 --httpListenAddress=127.0.0.1 添加到配置文件中(例如在 JENKINS_OPTS 中)。

以 Jenkins 用户身份登录

默认管理员用户名是 Admin。当您登录到 https://127.0.0.1:8090 的 Web 界面时,您需要查看 /var/lib/jenkins/secrets/initialAdminPassword 文件,或运行 journalctl -u jenkins.service 并搜索安装时创建的默认密码。

jenkins 用户的 home 文件夹位于 /var/lib/jenkins。Jenkins 用户没有默认 shell,因此如果您需要登录此用户(例如管理 SSH 密钥),请参阅 su#Nologin users

在可访问显示的环境中运行 Jenkins

如果 Jenkins 需要运行在没有显示器的情况下会失败的图形应用程序(例如 Unity Editor),您必须从桌面会话中运行它。如果您正在运行 GNOME,您可以执行以下操作来自动运行可访问显示器的 Jenkins

  • 给 Jenkins 一个登录 shell。
# usermod -s /bin/bash jenkins
  • 给 Jenkins 设置一个密码。
# passwd jenkins
  • 设置 Jenkins 使用 GDM 自动登录。
/etc/gdm/custom.conf
# Enable automatic login for user
[daemon]
AutomaticLogin=jenkins
AutomaticLoginEnable=True
  • 添加一个新的自启动应用程序,即您最喜欢的终端,并运行 jenkins。
/var/lib/jenkins/.config/autostart/jenkins.desktop
# Launch a gnome terminal, using a bash shell to launch jenkins.
[Desktop Entry]
Type=Application
Exec=gnome-terminal -x bash -c "JENKINS_HOME=~ java -jar /usr/share/java/jenkins/jenkins.war; exec bash"
Hidden=false
X-GNOME-Autostart-enabled=true
Name=jenkins
Comment=Jenkins auto-start

重启后,GDM 应该会自动登录到 gnome 会话。然后 gnome 应该启动一个运行 jenkins 实例的终端。这个实例应该能够毫无问题地构建 Unity 游戏!

参见