jamielsharief/updater

应用程序更新和升级

0.1.0 2021-02-10 11:45 UTC

This package is auto-updated.

Last update: 2024-09-17 20:48:15 UTC


README

license build coverage status

Updater是一个应用程序更新器,它将更新和升级您部署的应用程序到最新版本,并在每次更新前后执行针对每个版本特定的任务。

虽然最初设计这个工具是为了让客户端或自动更新(通过CRON任务)应用程序,但我觉得它在部署/发布周期中可能很有用。

它与composer存储库(如packagist.org)或由satis生成的静态存储库一起工作。私有存储库可以使用身份验证进行保护,并在需要时存储和请求更新。

$ updater update
     __  __          __      __
    / / / /___  ____/ /___ _/ /____  _____
   / / / / __ \/ __  / __ `/ __/ _ \/ ___/
  / /_/ / /_/ / /_/ / /_/ / /_/  __/ /
  \____/ .___/\__,_/\__,_/\__/\___/_/
      /_/

version 0.1.0

- Checking for updates company/app (1.0.2)
- Downloading company/app (1.0.3)
- Running before scripts:
 > bin/console db:backup
- Extracting company/app (1.0.3)
- Running after scripts:
 > composer update
 > bin/console db:migrate

安装

您可以从源代码构建或从发布部分下载updater

下载源代码

下载源代码并构建updater应用程序。

$ git clone http://github.com/jamielsharief/updater updater
$ cd updater
$ composer install

现在构建PHAR,这将创建bin/updater.phar,您可以将它复制到您的应用程序bin文件夹。

$ php -d phar.readonly=Off bin/build

全局复制

要全局安装,请复制

$ cp bin/updater.phar /usr/local/bin/updater

用法

在您的应用程序项目文件夹中创建updater.json,并在每个版本中配置它以运行beforeafter命令,bash或PHP脚本 - 如果需要的话。

{
    "url": "https://packagist.org.cn",
    "package": "company/app",
    "scripts": {
        "before": [
            "bin/console db:backup"
        ],
        "after": [
            "bin/console db:migrate"
        ]
    }
}

如果您使用的是私有satis存储库,请更改updater.json中的url,例如https://www.example.com,并根据需要为composer设置身份验证。

身份验证

目前仅支持http-basic授权,要使用它,只需在项目目录中创建auth.json。但是,您还可以生成satis私有存储库,然后连接到各种存储库并支持更多授权方法。

{
    "http-basic": {
        "example.com": {
            "username": "token",
            "password": "878ec3cebea5b2c1ee4c0becdb00d3d3"
        },
    }
}

Composer也可以为您创建它composer config http-basic.example.com username password --global

初始化项目

要开始使用updater,您需要初始化项目。

运行updater init命令以初始化更新器,您将被提示输入当前版本,之后将拉取更新。

$ updater init

更新

要更新您的应用程序,只需运行以下命令,这将按顺序运行所有可用的更新。

$ updater update

如果您想运行当前主版本中所有可用的更新

$ updater update --all

您可以使用--verbose选项来查看脚本的输出,如果有任何输出

如果您想使用特定的composer版本(包括开发分支)测试更新,这将使用特定的版本,并且不会更新锁定文件。

$ updater update --version dev-master

升级

如果没有挂起的更新,这将仅升级到下一个主版本,并且不会更新第一个下一个主版本之后的任何版本。

要升级到下一个主版本,请运行upgrade命令。

$ updater upgrade

您可以使用--verbose选项来查看脚本的输出,如果有任何输出

如果您想使用特定的composer版本(包括开发分支)测试升级,这将使用特定的版本,并且不会更新锁定文件。

$ updater upgrade --version dev-master

演示

如果您完成之后不删除此目录,构建PHAR将失败。

下载源代码和依赖项。

$ git clone http://github.com/jamielsharief/updater updater
$ cd updater
$ composer install

现在将示例项目下载到子目录中,例如updater/demo,这样您就可以在不需要构建PHAR文件的情况下运行更新器。

$ composer create-project jamielsharief/updater-demo:0.1.0 demo

第一个版本没有updater.json,因此在demo文件夹中创建此文件,并将URL设置为仓库地址。

{
    "url": "https://packagist.org.cn",
    "package": "jamielsharief/updater-demo",
    "scripts": {
        "before": [],
        "after": []
    }
}

初始化updater,同时提及您解压zip存档的目录。

$ bin/updater init demo --version 0.1.0

然后运行update命令以获取下一个可用的更新。

$ bin/updater update demo

现在,您可以运行几次或使用--all选项。

当您准备好将应用程序升级到下一个主要版本时,运行

$ bin/updater upgrade demo