keboola/storage-backend

该包的最新版本(dev-main)没有提供许可证信息。


README

存储后端相关工具的单一代码仓库

此仓库包含的包

添加新仓库

如果您想向单一代码仓库添加新仓库,请遵循说明

资源配置

一些库需要安装存储在S3上的后端驱动程序,为此我们创建了一个cloudformation模板。这个cloudformation模板在CI对应的AWS堆栈上手动管理。当向单一代码仓库添加新库时,我们可以使用基础角色进行构建,并使用如main.yml中第32行的设置,或者将新角色添加到cloudformation模板中,并将必要的资源分配给它。

      -
        name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: ${{ env.AWS_CREDENTIALS_ROLE_TO_ASSUME }}
          aws-region: ${{ env.AWS_CREDENTIALS_REGION }}

如何使用单一代码仓库和包

我们使用symplify/monorepo-builder维护单一代码仓库。

要下载存储在S3上的驱动程序,请使用AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY(导出它们或在docker compose构建命令中使用--build-arg选项)从AWS账户"Dev - Main Legacy" -> 创建用户namesurname-kbc-drivers-download并添加策略"DriversDownload")。

基础docker服务是dev。要安装依赖项,请使用

docker compose build dev
docker compose run dev composer install

docker compose run dev vendor/bin/monorepo-builder

单一代码仓库中各个包的服务名称以dev-为前缀。因此,如果我们想为php-table-backend-utils包安装composer,我们使用以下命令

docker compose build dev-php-table-backend-utils
docker compose run dev-php-table-backend-utils composer install

然后运行例如单元测试,如下所示

docker compose run dev-php-table-backend-utils composer tests-unit

通过分离包并单独安装每个包,在运行上述命令时。因为monorep中的其他包是从packagist.org安装的,所以各个包之间的自定义设置不会共享。

例如,php-table-backend-utils需要在php-datypes中,但如果我们对php-datatypes进行更改并调用docker compose run dev-php-table-backend-utils composer tests-unit,更改将不会反映在php-table-backend-utils测试中。

在本地运行测试

为了能够运行包括通过composer请求的所有更改和包的测试,我们可以使用全局phpunit。

docker compose run dev vendor/bin/phpunit packages/php-table-backend-utils/tests/Unit/

然而,通过在PHPStorm中创建新的CLI解释器,我们将实现更改将反映在整个单一代码仓库中。

因此,对于每个库,我们将创建自己的解释器。在创建新解释器时,还应为每个解释器单独添加环境变量。

例如,对于库php-table-backend-utils,如图所示。

Cli interpreter in phpstorm

  1. 然后您需要配置PHP->Test Frameworks中的测试框架
  2. 点击+,然后选择PHPUnit by Remote Interpreter PHPUnit by Remote Interpreter
  3. 然后在路径到脚本中选择keboola/storage-backend/vendor/autoload.php的路径 Path to autoload
  4. 点击确定

发布

如果您想发布新版本的软件包,您需要

  • 将PR合并到main分支
  • main分支上创建并推送标签<package>/<newVersion>。例如,如果您想发布版本为7.7.0php-datatypes,则标签为php-datatypes/7.7.0