circleci v2 配置 - 我们如何在工作流程中按所有者过滤?
circleci v2 config - how do we filter by owner in a workflow?
在 circleci 版本 1 配置中,有一个选项可以将 owner
指定为部署中的一个选项。来自 circleci 文档 ( https://circleci.com/docs/1.0/configuration/ ) 的示例,其中 owner: circleci
是关键行:
deployment:
master:
branch: master
owner: circleci
commands:
- ./deploy_master.sh
在配置的版本 2 中,可以使用过滤器和标签来指定构建哪些分支,但我还没有找到(在文档中或在互联网上)任何能给我相同功能的东西能力。
我想要实现的是 运行 在分叉上构建和测试步骤,但如果存储库所有者是主要存储库,则只有 运行 部署步骤。人们经常使用相同的分支名称进行分叉 - 在本例中为 master
- 因此由于无法部署而导致构建失败是违反直觉的,尤其是当我想在 [=31= 中使用受保护的分支时] 并且仅合并基于拉取请求中成功构建的提交。
我意识到我们只能 运行ning 基于标签存在的构建,但是没有什么能阻止有人用叉子也在他们的叉子中创建一个标签,这让我们回到了第一步。
有人知道如何在版本 2 配置中指定 repo 的所有者吗?
来自版本 2 配置文档 (https://circleci.com/docs/2.0/workflows/) 的示例,以防它有助于唤醒某些人的记忆:
workflows:
version: 2
un-tagged-build:
jobs:
- build:
filters:
tags:
ignore: /^v.*/
tagged-build:
jobs:
- build:
filters:
branches:
ignore: /.*/
tags:
only: /^v.*/
免责声明:CircleCI 的开发人员布道师
该功能在 CircleCI 2.0 上不可用。您可以申请 here.
作为替代方案,您可以查找分支名称,比如 master
,以及 CIRCLE_PR_NUMBER
环境变量。如果该变量有任何值,那么它是 master
的一个分支,您不应该部署。
在 circleci 版本 1 配置中,有一个选项可以将 owner
指定为部署中的一个选项。来自 circleci 文档 ( https://circleci.com/docs/1.0/configuration/ ) 的示例,其中 owner: circleci
是关键行:
deployment:
master:
branch: master
owner: circleci
commands:
- ./deploy_master.sh
在配置的版本 2 中,可以使用过滤器和标签来指定构建哪些分支,但我还没有找到(在文档中或在互联网上)任何能给我相同功能的东西能力。
我想要实现的是 运行 在分叉上构建和测试步骤,但如果存储库所有者是主要存储库,则只有 运行 部署步骤。人们经常使用相同的分支名称进行分叉 - 在本例中为 master
- 因此由于无法部署而导致构建失败是违反直觉的,尤其是当我想在 [=31= 中使用受保护的分支时] 并且仅合并基于拉取请求中成功构建的提交。
我意识到我们只能 运行ning 基于标签存在的构建,但是没有什么能阻止有人用叉子也在他们的叉子中创建一个标签,这让我们回到了第一步。
有人知道如何在版本 2 配置中指定 repo 的所有者吗?
来自版本 2 配置文档 (https://circleci.com/docs/2.0/workflows/) 的示例,以防它有助于唤醒某些人的记忆:
workflows:
version: 2
un-tagged-build:
jobs:
- build:
filters:
tags:
ignore: /^v.*/
tagged-build:
jobs:
- build:
filters:
branches:
ignore: /.*/
tags:
only: /^v.*/
免责声明:CircleCI 的开发人员布道师
该功能在 CircleCI 2.0 上不可用。您可以申请 here.
作为替代方案,您可以查找分支名称,比如 master
,以及 CIRCLE_PR_NUMBER
环境变量。如果该变量有任何值,那么它是 master
的一个分支,您不应该部署。