ac-toulouse / satis2nexus
Satis 的分支,用于自动化推送我们的 composer 包到 Nexus
Requires
- php: ^7.0
- composer/composer: ^1.4
- php-curl-class/php-curl-class: 8.5.0
- symfony/console: ^2.1 || ^3.0.4 || ^4.0
- twig/twig: ^1.7 || ^2.0
This package is not auto-updated.
Last update: 2024-10-01 12:34:11 UTC
README
Satis2Nexus 是 Satis 项目 的分支,用于自动化构建和推送 PHP 私有包到已安装 Nexus 仓库管理器 的实例。
该 Nexus 仓库插件仍然处于测试版,并且只完成了一半,唯一贡献者决定不再更新它。因此,没有简单的方法可以从源仓库自动上传私有 PHP 包到 Nexus,就像 Satis 所做的那样。
该插件唯一的自动化功能是镜像/代理由 packagist.org 托管的公共库。这样做的主要原因是因为该插件只能理解一种类型的 "packages.json" 文件,这是 packagist 的文件(Satis 使用了一个稍微不同的架构)。
因此,我们决定从 Satis 项目中分叉,以包括一个额外的步骤,将生成的 zip 文件推送到 Nexus composer 仓库。
使用方法
安装
在将用于向 Nexus 实例发送包的服务器上,克隆项目仓库
$ git clone git@github.com:ptsakyrellis/satis2nexus.git
更新
在将用于向 Nexus 实例发送包的服务器上,更新仓库: satis2nexus。
$ git pull origin master
请在更新之前删除您的包构建目录,以避免任何问题。
配置
配置是通过编辑位于项目根目录的 satis.json
文件来完成的。 satis.json.dist
是一个示例,用于引导您。
satis.json
文件允许您定义您想要在 composer 仓库中提供的项目的不同源代码仓库列表。对于这一步骤,您可以阅读 原始 Satis 文档。
我们已删除 "homepage"
属性并添加了以下元素
{
"nexus": "http://nexus3.yourdomain.com",
"nexus-repository": "composer-repository-name",
"nexus-user": "user_nexus_login",
"nexus-password": "user_nexus_password"
}
将为 Git 仓库中找到的每个标签创建一个发布版本。
命令
这是一个 symfony 控制台应用程序,由两个任务组成,build 和 purge。
使用应用程序的最佳方法是使用 cronjob,它将定期构建和清除 Nexus 仓库,以便紧密镜像源仓库中发布或删除的内容。
先决条件
该应用程序将使用底层的 git 命令执行操作,因此您应该在您的服务器上安装 git 二进制文件,并且执行应用程序的用户应该有权访问您将推送到的 Nexus 仓库。您可以阅读 原始 Nexus 文档 了解更多相关信息。
构建命令
将新包发送到 Nexus(或替换已修改的包)。
用法语法
$ php bin/satis build --no-interaction \<configuration file> \<build dir>
- 参数
- 配置文件:
satis.json
配置文件 - 构建目录:将创建
packages.json
文件和 zip 存档的目录
- 配置文件:
将要执行的操作
- 克隆每个声明的源代码仓库以为每个版本标签创建一个 zip 存档
- 每个存档都有一个唯一的名称
- 之前创建的存档不会再次创建(基于存档名称)
- 不在 Nexus 仓库中的存档将被发送
- 如果标签被修改,将创建新的存档并将其推送到 Nexus 仓库以替换旧的存档
- 将生成一个
packages.json
文件,并由purge
命令使用
清除命令
删除 Nexus 仓库中不再存在于源代码仓库中的包。
用法语法
$ php bin/satis purge <configuration file> <build dir>
- 参数
- 配置文件 : satis.json 配置文件
- 构建目录:将创建
packages.json
文件和 zip 存档的目录
将要执行的操作
- 警告:清除命令仅基于
packages.json
文件的内容,因此您只能在运行构建命令之后运行此命令。 - 在 Nexus 仓库中找到但不再在 git 仓库(作为标签)中的存档将被删除
许可证
Satis2Nexus 在 MIT 许可证下授权 - 有关详细信息,请参阅 LICENSE 文件