blacklabs/blacklabs

Black Labs CLI。

v1.7.2 2024-08-20 20:10 UTC

README

Latest Stable Version

Black Labs CLI,为我们的工作。

要求

  1. 您必须在您的机器上安装 git

    sudo apt install git-all
  2. 您必须安装 gh 以使用 create-release-branch 命令(它为该分支创建一个 PR)

    请参阅 gh Linux 安装说明

  3. 对于 forge 命令,您需要先运行 blacklabs app:store-forge-api-token <token>。它将被保存到磁盘上,因此您不需要再次运行它(直到您的令牌过期)。

安装

请确保 composer 在您的系统 PATH 中,并且具有全局安装所需的文件夹:[Composer 介绍,全局](https://getcomposer.org/doc/00-intro.md#globally)

composer global require blacklabs/blacklabs

更新

composer global update blacklabs/blacklabs
blacklabs self-update

这个命令最近抛出了一个关于 zlib 或什么的错误。然而,这似乎并没有造成任何问题。

用法

Devops

创建发布分支

blacklabs create-release-branch minor 1001,1002,1003,884,732,1234

这将创建一个类似于 release/v0.18.1/1001-1002-1003-884-732-1234 的发布分支,并将每个问题合并到其中。

您也可以指定版本号,例如 v0.18.1,它将使用该版本号而不是递增版本号。

blacklabs create-release-branch v0.18.1 1001,1002,1003,884,732,1234

注意

  • 对于热修复或错误修复版本,请使用 patch 或下一个 'patch' 版本号。

  • 对于功能版本,请使用 minor 或下一个 'minor' 版本号。

  • 我们还没有为 'major' 数字设定真正的目的,但语义版本化的行业标准是:使用 major 或下一个 'major' 版本号进行破坏性更改。

  1. 首先,它会检出 dev 分支并拉取它,以确保它是最新的。

  2. 然后,它从 dev 分支创建一个新的分支,例如 release/v0.18.1/1001-1002-1003-884-732-1234

    1. 如果它找到同名存在的分支,它将询问您是否想要删除并重新创建它。如果您做出肯定回答,它将这样做;如果不是,它将退出。
  3. 然后,它遍历提供的每个问题编号,并尝试找到对应的分支。

    1. 如果它找不到包含该问题编号的分支,它将跳过该问题,以便您稍后手动合并。

    2. 如果它找到多个包含该问题编号的分支,它将询问您要使用哪一个。

    3. 然后,找到了要合并的分支后,它从 origin 合并它。

      注意

      这意味着每个问题的分支需要先推送到 origin

    4. 如果遇到合并冲突,它将暂停并询问您手动解决合并。解决后,您可以告诉它继续。

  4. 一旦合并完成,它将分支推送到 origin

  5. 然后,它为每个列出的问题创建一个带有描述的 PR。

  6. 然后,它还为该版本添加一个标签(并推送它)。

显示网站分支

blacklabs show-site-branches

这个命令向我们的服务器发送带有 'console' 标签的 Forge ping,然后显示所有网站以及它们当前分配的 git 分支。

这主要有助于快速浏览,而通过 Forge 点击查看则有些繁琐。

更新网站分支并部署

blacklabs update-site-branch-and-deploy

注意

这个命令向 Forge 发送 ping(如果您还没有为应用程序提供一个 Forge API 令牌,请先这样做:blacklabs app:store-forge-api-token <token>)。

  1. 首先,它会询问您要部署到哪个网站,从 Forge 的网站列表中选择,通过带有 'console' 标签的网站进行过滤。
  2. 然后,它会询问您要部署哪个分支。在此处选项中,它使用 git branch -r-r 表示 '远程',只显示已推送到 origin 的分支)。
  3. 然后,它会ping Forge以更新该网站的分支为您选择的分支。
  4. 然后,它会再次ping Forge以启动该网站的部署。

部署到生产环境

blacklabs deploy-to-production
  1. 它会警告您,您必须键入 forge-production 以使其通过。
  2. 然后,如果未提供第一个参数作为分支,它会询问您要部署哪个分支。
  3. 然后,它会检出 forge-production 并合并您选择的分支。
  4. 然后,它会推送 forge-production
  5. 然后,它会检出 dev 并将 forge-production 合并到其中。
  6. 然后,它会推送 dev

重新合并发布分支

blacklabs merge-and-increment-tag release/v0.18.1/1002-1003-1120-843-034 843,034

这只是为了帮助合并问题分支,然后增加标签号。Forge服务器会自行处理此工作流程的自动部署。因此,此命令只会

  1. 合并指定的问题分支
  2. 增加标签的部署号(从指定分支中找到的号)
  3. 推送分支和标签

从网站中添加或删除问题

blacklabs site add-issues blacklabtesting.com 388,3843
  1. 它会获取已部署到该网站的当前分支。

  2. 它会从该分支的 package.json 中获取标签(我认为是这样;待测试)并增加 prerelease 号码,例如

    0.18.0-2
           ^
    
  3. 它会根据分支名称中现有的列表以及您要添加或删除的列表,生成一个新的问题列表。

  4. 它会创建一个新的发布分支,增加 prerelease 号码(见 创建发布分支

  5. 它会更新给定网站的分支并触发其上的部署(见 更新网站分支和部署

切换到分支并处理迁移

blacklabs checkout
  1. 它会检查当前分支中是否进行了迁移,如果是,则运行 migrate:rollback
  2. 然后,它会检出到新分支。
  3. 然后,它会检查新分支中是否进行了迁移,并运行 migrate

警告

此命令目前存在一个bug 🪲,无法在多个 '步骤' 中运行迁移(即当您使用 --step 运行迁移时,或者当您创建迁移并运行它,然后创建另一个并在单独的进程中运行它时)。

贡献

部署过程

php blacklabs app:deploy

此命令执行

  1. 确保您位于master分支
  2. 运行测试 php blacklabs test
  3. 构建 php blacklabs app:build - 给予版本号
  4. 提交
  5. 为该版本创建标签
  6. 推送标签(包括master分支)

我希望添加的功能

  1. 一个用于切换控制台分支的命令,但首先反向执行当前分支的独特迁移。然后,运行新分支带来的任何迁移。也可以为 composer installnpm install 提供此命令的版本。

  2. Laravel提示:这将使CLI交互更美观,更易于使用,例如,当在创建发布分支时遇到合并冲突时,使用箭头键选择 'yes' 而不是键入 'yes'。