Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Continuous integration Bitrise在代码推送上运行部署工作流(当它不应该时)_Continuous Integration_Continuous Deployment_Bitrise - Fatal编程技术网

Continuous integration Bitrise在代码推送上运行部署工作流(当它不应该时)

Continuous integration Bitrise在代码推送上运行部署工作流(当它不应该时),continuous-integration,continuous-deployment,bitrise,Continuous Integration,Continuous Deployment,Bitrise,我不明白为什么会发生以下两件事: 当我将一些提交推送到我的feature\u foo分支时,会运行两个工作流(构建):针对最新提交的主工作流,以及针对我的上一个PR部署工作流,都在feature\u foo上。我希望只运行主工作流,因为我还没有发布PR 在同一分钟内,从artifacts+\@bitrese.io向我发送了两封相同的电子邮件通知。我理解公关(因为公关在技术上是一种推动),但我怀疑这是问题所在,因为我还没有创建公关 以下是我当前的bitrise.yml触发器映射: trigger_

我不明白为什么会发生以下两件事:

  • 当我将一些提交推送到我的
    feature\u foo
    分支时,会运行两个工作流(构建):针对最新提交的主工作流,以及针对我的上一个PR部署工作流,都在
    feature\u foo
    上。我希望只运行主工作流,因为我还没有发布PR
  • 在同一分钟内,从
    artifacts+\@bitrese.io
    向我发送了两封相同的电子邮件通知。我理解公关(因为公关在技术上是一种推动),但我怀疑这是问题所在,因为我还没有创建公关 以下是我当前的bitrise.yml触发器映射:

    trigger_map:
    - push_branch: "*"
      workflow: primary
    - pull_request_source_branch: "*"
      pull_request_target_branch: feature
      workflow: deployment-staging
    - tag: "v*.*.*"
      workflow: deployment-production
    
    顺便说一句,这是我想要的3-workflow设置:

  • 在两种情况下运行集成测试(主工作流):
  • 代码推送到*(任何分支)
  • 将请求拉至
    功能
    分支(当创建PR时,即预合并状态,以便参与者可以预览其建议更改的潜在影响)
  • 当从*到
    功能的PRs合并到
    分支时,运行部署(部署工作流)到暂存
  • 当推送标签
    v*.
    时,运行部署(部署工作流)到生产
  • 实现此目的的正确bitrise.yml配置是什么?报告没有说明我们如何按州(发布与合并)区分PRs。我只想在代码经过检查后部署


    谢谢

    如果打开PR,会触发另一个构建吗?你确定公关部还没有打开吗

    我只想在代码经过检查后部署

    我猜您的意思是,当PR被审查并合并到目标分支机构中时,例如,合并到
    主分支机构中

    为此,您可以使用如下配置:

    当您打开PR并每次更新PR时,这将使用名为
    primary
    的工作流运行生成。在这种情况下,您通常希望在
    primary
    工作流中运行一些自动化测试(单元/ui测试、过梁和/或执行测试生成)

    然后,当您合并PR(在本例中,合并到
    主分支中)时,它将使用
    deploy
    工作流触发构建(从技术上讲,合并会生成提交/推送事件)


    我希望这有帮助,如果你有任何问题,请告诉我

    维克多的回答足够了,但我想补充一些可能与其他人有关的发现:

    当我将一些提交推送到我的feature\u foo分支时,会运行两个工作流(构建):针对最新提交的主工作流,以及针对上一个PR的部署工作流,这两个工作流都在feature\u foo上

    我相信发生这种情况是因为我有一个开放的PR,并将其他提交推送到该PR的源分支。根据我当时的触发器映射(上面在OP上共享),它将运行
    deploy staging
    工作流。Viktor共享的触发器映射对我的用例更有意义

    在同一分钟内,从artifacts+\@bitrese.io向我发送了两封相同的电子邮件通知

    事实证明Bitrise在两封单独的电子邮件中同时发送了一个签名和一个未签名的APK(无论什么)

    trigger_map:
    - push_branch: master
      workflow: deploy
    - pull_request_target_branch: "*"
      workflow: primary