F-Droid 网站是使用 Jekyll和 gitlab-ci构建的。整个网站现在使用标准的 git“复刻”工作流程工作,GitLab 很好地支持该工作流程,并且由 GitHub 等服务众所周知。对于 f-droid.org 分发的所有页面和有关应用和软件包的信息,这些页面是使用我们的 jekyll-fdroid 插件生成的,该插件从 f-droid.org 索引文件获取内容。
开发复刻上的暂存
fdroid-website 的所有开发分支都会自动设置一个临时服务器,并由 gitlab-ci 配置维护。这会自动将分支的 master 分支的内容部署到 GitLab Pages。例如,nicoalt 的 git 分支是在 https://gitlab.com/nicoalt/fdroid-website,并且 master 分支自动的部署到 https://nicoalt.gitlab.io/fdroid-website。
官方网站的暂存
和复刻一样,网站主 git 存储库的 master 分支,https://gitlab.com/fdroid/fdroid-website,会自动部署到 https://fdroid.gitlab.io/fdroid-website。这是一个在标记发布前查看网站当前状态的地方。
部署到 https://f-droid.org
当网站的更新经过测试并准备就绪时,发布管理员会在主 git 存储库中创建一个有 PGP 签名的发布标签。部署服务器监控主 git 存储库中的新标签。当它看到一个新标签时,它首先使用手动配置的 GnuPG 密钥环检查 git 标签上的 PGP 签名,该密钥环只包含允许标记网站发布的PGP 密钥的公钥。
git 标签验证后,运行
.gitlab-ci.yml
中的 f-droid.org 目标以生成站点的实际文件。然后将这些文件复制到 f-droid.org 服务器上。
部署标签使用了一个“语义版本”命名方案:
- <major>.<minor>
- <minor> 在每次部署时都会递增
- <major> 只在有重大变化时递增
