0

在 circleci 版本 1 配置中,可以owner选择在部署中指定为选项。circleci 文档(https://circleci.com/docs/1.0/configuration/owner: circleci中的一个示例,它是关键行:

deployment:
  master:
    branch: master
    owner: circleci
    commands:
      - ./deploy_master.sh

在配置的第 2 版中,可以使用过滤器和标签来指定构建哪些分支,但我还没有找到(在文档或互联网上)任何给我相同功能的东西。

我想要实现的是在 fork 上运行构建和测试步骤,但只有在存储库所有者是主存储库时才运行部署步骤。人们经常使用相同的分支名称进行分叉 - 在这种情况下master- 因此由于无法部署而导致构建失败是违反直觉的,尤其是当我想在 git 中使用受保护的分支并且仅基于成功合并提交时构建拉取请求。

我意识到我们可以转向仅基于存在的标签运行构建,但没有什么能阻止有人用叉子也在他们的叉子中创建一个标签,这让我们回到了原点。

有人知道如何在版本 2 配置中指定回购的所有者吗?

版本 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.*/
4

1 回答 1

0

免责声明:CircleCI 的开发人员布道者

该功能在 CircleCI 2.0 上不可用。你可以在这里申请。

作为替代方案,您也许可以查找分支名称,例如master,以及CIRCLE_PR_NUMBER环境变量。如果该变量有任何值,那么它就是一个分支,master您不应该部署。

于 2018-04-05T22:55:10.157 回答