Aros/开发者/NightlyConfig
- 在 sourceforge.net 上用于 AROS 项目的 SSH 帐户
- 存储所有所需源代码的空间(您选择的软件包)
- 存储生成的二进制文件和日志文件的空间
- 用于 https://svn.aros.org/ 的有效 svn 帐户(具有读访问权限)
- 订阅了 AROS 开发邮件列表的电子邮件帐户
- <SCRIPTDIR>
- 夜间脚本存储的位置
- <Sourceforge SSH 帐户名>
- 在 sourceforge 上具有访问 AROS 权限的有效 SSH 帐户
- <夜间构建用户名>
- 您将使用它构建二进制文件的本地用户帐户
- <开发邮件列表电子邮件地址>
- 能够访问 AROS 开发邮件列表的电子邮件帐户
- 这将用于将日志发送到邮件列表
- <您的服务器配置文件名>
构建脚本使用包名称来识别为特定服务器构建的内容。这些包告诉构建脚本在 <SRCDIR>/pkg/ 中运行哪些文件,从而创建所选的二进制文件。
通常适用于所有平台的文件的名称只是它们的 target,其中 all 是构建目标。当前定义的为
sources.svn.all changelogs.svn.all documentation.svn.all
sdk.svn.pc-i386 sdk.svn.pc-x86_64 contrib.svn.pc-i386 contrib.svn.pc-x86_64 bootiso-grub.svn.pc-i386 bootiso-grub2.svn.pc-i386 bootiso-grub2.svn.pc-x86_64 bootfloppy.svn.pc-i386 hosted.svn.linux-i386 hosted.svn.linux-x86_64 hosted.svn.linux-ppc
bootiso generic routine used by the arch specific nightly targets hosted sdk
首先,您需要在系统上设置一个用户帐户,该帐户将用于执行构建。创建一个用户
adduser <Nightly-Build User Name>
第一步是获取夜间构建脚本。cd 到您将执行构建的位置,并检出脚本,如下所示 -
cd /home/<Nightly-Build User Name> mkdir -p MyNightlyBuildDir cd MyNightlyBuildDir svn checkout https://svn.aros.org/svn/aros/trunk/AROS/scripts/nightly
您将有一个名为 nightly 的新子目录,其中包含用于构建夜间二进制文件的所有脚本。从现在开始,我们将把这个目录称为 <SCRIPTDIR>。
现在 cd 到该目录,并创建一个目录树来保存 AROS 源代码
cd <SCRIPTDIR> mkdir -p Source mkdir -p Source/Contrib mkdir -p Source/Documentation mkdir -p Source/Necessary
最后,创建一个初始缓存,其中包含用于构建 AROS 的 svn 文件
重要:您必须在此时为系统设置正确的区域设置!!
键入以下内容 -
cd Source export LANG=en_US.ISO8859-1
然后检出执行夜间构建软件包所需的所有源代码存储库
例如...
svn checkout https://svn.aros.org/svn/aros/trunk/AROS cd Contrib svn checkout https://svn.aros.org/svn/aros/trunk/contrib cd ../Necessary svn checkout https://svn.aros.org/svn/aros/trunk/contrib/necessary
如果您不想将 complete contrib 包含在存档中,可以省略它。只需将相应的目录保留为空。
在 cfg 目录中创建一个纯文本文件,名为 <您的服务器配置文件名>。在文本编辑器中打开它,并添加您要构建的软件包。
例如..
CFG_PACKAGES=(sources.svn.all documentation.svn.all sdk.svn.pc-x86_64 bootiso-grub2.svn.pc-x86_64)
要启用将构建结果的电子邮件报告发送到开发邮件列表,请添加以下行..
CFG_MAIL_ENABLE=yes CFG_MAIL_CC=<Dev Mailing List eMail Address>
要启用上传二进制文件以便可以在 AROS.org 上列出它们,请添加..
CFG_UPLOAD_ENABLE=yes CFG_DS_USER=<Sourceforge SSH Account Name> CFG_BACKUP_ENABLE=no
第一次检查系统是否正常运行时...通过执行以下操作执行手动模拟运行
cd <SCRIPTDIR>; ./build <Your Servers Config-Name>
并观察它如何显示所有构建输出。
如果一切顺利,并且您在服务器配置中启用了电子邮件记录,您应该在 AROS 开发邮件列表中看到一封确认电子邮件,确认构建已成功完成。如果您还启用了文件上传,并且在 sourceforge 上具有有效的 AROS SSH 帐户,则二进制文件应该上传到临时存储位置,准备移动到 AROS.org 下载页面 上的实时文件夹中。
您需要为模拟运行中执行的构建步骤创建一个 cron 作业。您需要添加一条命令,该命令每 24 小时执行一次,运行构建脚本并使用您的服务器的配置上传生成的存档到 AROS.org。
0 2 * * * ( cd <SCRIPTDIR> && ./build <Your Server's Config-Name> ) > /dev/null
这将使构建机器尝试在凌晨 2 点构建和上传 AROS。所有输出将被重定向到 NULL(当然,除了生成的日志文件)
如果您只是为现有的 AROS 目标提供二进制文件,那么前面的步骤应该足以将文件添加到 AROS.org 网站。但是,如果您想提供新的 AROS 版本,则需要使用有关它们的信息更新 AROS.org 网站。继续阅读...
用于在 AROS.org 上列出二进制文件的脚本和页面定义在 https://svn.aros.org/svn/aros/trunk/documentation 中的 svn 中维护。
要编辑文件,您需要检出存储库并进行自定义以适合。
如果您为当前不存在的 AROS 目标提供二进制文件,则需要更新在 AROS.org 上列出它们的那些文件。
编辑 db/download-descriptions/<Language> 文件以列出您构建的软件包的描述。请确保遵循现有软件包使用的命名约定。
这通常意味着使用的源文件在源代码库缓存中具有 utf8 文件名,这是由于初始检出是在系统区域设置为 utf8 时进行的。
要修复它,请依次更改到每个源目录,然后删除除顶层 .svn 目录之外的所有文件和目录。
现在输入 ..
export LANG=en_US.ISO8859-1
.. 最后在每个目录中执行 "svn update"。
主夜间构建机器还承担着运行脚本以将上传的二进制文件移至实时 AROS.org 下载页面并清理上传目录的责任。其他构建机器不需要运行这些脚本。
将上传的二进制文件移至实时 AROS.org 下载页面。
您需要创建一个在一天中定期运行的 cron 作业,目前每小时运行一次。但是,此作业不是在本地执行的,将需要一个 AROS SSH 帐户才能访问 sourceforge。它的目标是将各种构建机器上传的存档移至 AROS.org 网站上的正确文件夹,以便它们可以供下载。它还删除了这些文件的任何旧版本,以便只有最新的版本可用(没有足够的存储空间来保留每个文件的多个版本)。
00 * * * * ssh <Sourceforge SSH Account Name> 'bash -l -c aros/scripts/nightly-update' > /dev/null
这将使服务器每小时将上传目录中存在的所有文件传输到 AROS.org 网站。同样,所有输出都发送到 NULL。
此步骤将从上传目录中删除不完整或损坏的夜间构建文件。
51 7 * * * ssh <Sourceforge SSH Account Name> 'bash -l -c aros/scripts/nightly-clean' > /dev/null
这将在每天上午 7:51 清理 AROS.org 服务器上的上传目录。