首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GitHub动作在拉请求多分支多环境中启动工作流

GitHub动作在拉请求多分支多环境中启动工作流
EN

Stack Overflow用户
提问于 2022-05-29 04:15:20
回答 1查看 1.4K关注 0票数 0

我试图使用以下条件启动Github操作工作流作业,每个条件启动一个单独的作业:

如果有一个新的拉请求将开发分支部署基础设施部署到dev环境

  1. 如果代码合并到dev分支部署基础设施到uat环境
  2. 如果有一个新的拉请求到主分支部署基础设施到暂存环境
  3. ,则该代码合并到主分支部署基础设施到生产环境

< code >g29。

代码语言:javascript
复制
on:   
  push:
    branches:
      - dev
      - main   
  pull_request:
    types: [opened, reopened]
    branches:
      - dev
      - main   
  workflow_dispatch:
        
    jobs:
        
          DeployDev:
            name: Deploy to dev
            if: ${{github.ref == 'refs/heads/dev' && github.event_name == 'pull_request'}}
            runs-on: ubuntu-latest
            environment: dev
            more steps follows ......

类似地,对于其他匹配条件(要运行的单独作业),我将使用

DeployUat:

代码语言:javascript
复制
if: ${{github.ref == 'refs/heads/dev' && github.event_name == 'push'}}

DeployStaging:

代码语言:javascript
复制
if: ${{github.ref == 'refs/heads/main' && github.event_name == 'pull_request'}}

DeployProd:

代码语言:javascript
复制
${{github.ref == 'refs/heads/main' && github.event_name == 'push'}}

当代码合并时,工作流作业似乎运行正常,但在创建拉请求时则不运行。

有人能指出我做错了什么吗?我试着删除行types: [opened, reopened],但没有产生任何区别。

EN

回答 1

Stack Overflow用户

发布于 2022-06-02 05:58:21

我想我找到了答案。

而不是if: $github.ref == 'refs/heads/dev' && github.event_name == 'pull_request'

应该是if: $github.event.pull_request.base.ref == 'dev' && github.event_name == 'pull_request'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72420871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档