仅使用 GitHub Actions 在特定分支上运行作业

2024-01-08

我对 GitHub Actions 比较陌生,我有 2 份工作——一份运行我的测试,另一份将我的项目部署到服务器上。

显然,我希望测试在每个分支上运行,但是只有当某些内容被推送到 master 时才应该进行部署。

我正在努力寻找一种在特定分支上运行作业的方法。我知道只能跑整个工作流程在特定分支上,但这意味着我将有一个“测试”工作流程和一个“部署”工作流程。

这听起来像是一个解决方案,但是它们将并行运行。在理想的情况下,测试将首先运行,只有成功后,部署作业才会开始。使用两个单独的工作流程时,情况并非如此。

我怎样才能实现这一目标?是否可以运行jobs在特定的分支上?


Answer recommended by CI/CD /collectives/ci-cd Collective

在最近的更新中,您现在可以将if条件句在job等级。请参阅此处的文档。https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idif https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idif

我测试了运行该作业的工作流程test每次推送时,但只运行deploy在主分支上。

name: my workflow
on: push
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Execute tests
        run: exit 0
  deploy:
    runs-on: ubuntu-latest
    needs: test
    if: github.ref == 'refs/heads/master'
    steps:
      - name: Deploy app
        run: exit 0

以下是我的原始答案,如果您希望有单独的工作流程,则还有一个替代解决方案。

第一个工作流程针对每个分支运行,除了master。在此工作流程中,您仅运行测试。

on:
  push:
    branches:
      - '*'
      - '!master'

第二个工作流程仅运行master并运行您的测试并在测试成功通过时进行部署。

on:
  push:
    branches:
      - master
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅使用 GitHub Actions 在特定分支上运行作业 的相关文章

  • github - 启用分支锁

    作为 GitHub 管理员 我想为所有用户锁定 GitHub 中的特定分支 例如如果我不希望任何人推送到主 生产或项目分支 我该怎么做 有没有办法直接锁定 GitHub 服务器上的分支 而不是使用任何客户端挂钩 是否有任何第三方工具 API
  • 更新另一个 Action 的工作流程文件的 GitHub Action

    我在同一个存储库中有两个 GitHub Actions 我正在尝试更新其中一个 但在尝试提交并推送更改时出现以下错误 remote rejected HEAD gt some branch refusing to allow a GitHu
  • 缺少节点-v59-linux-x64/grpc_node.node

    我正在尝试在我的服务器中使用 Firebase admin SDK 当我部署时 出现错误 我在 firebase admin node module 映射中缺少文件 node v59 linux x64 grpc node node 我在包
  • 如果即使对于开源项目,rails 项目的任何源代码也应该被隐藏怎么办? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这是一个很难寻找的东西 如果我有一个开源 Rails Web 应用程序项目 其源代码是公开托管的 例如在 GitHub 上 如果该应用
  • git 2.32 git push -u origin master 没有任何反应

    I ve starting to use git github and I m stucked on how to push my codes to github I m following some tutorials and when
  • BRISK 特征检测器检测零个关键点

    下面显示的 Brisk 探测器没有给我任何关键点 有人可以提出一个问题吗 我将尝试用一些代码解释我在下面所做的事情 include opencv2 features2d features2d hpp using namespace cv u
  • 这个灰色的 git 图标是什么?

    看起来像文件夹中的文件夹 或者可能是一把锁 该文件无法打开 并且其中似乎没有任何内容 我确实知道的一件事是 这个文件夹本身就是一个存储库 位于存储库内部 考虑到它是一个子模块 https stackoverflow com a 191318
  • 无法让 TeamCity 使用默认私钥向 GitHub 进行身份验证

    我正在尝试让 TeamCity 构建我的私人 GitHub 存储库 当我显式设置密钥文件的路径时 我能够成功让我的 VCS 根通过连接测试 然而 尽管进行了大量的谷歌搜索 当我使用 默认私钥 选项时 我无法让它工作 我明白了com jcra
  • GitHub MarkDown:可以使用宏和变量吗?

    我一直在学习 github markdown 我有一个关于变量和宏的问题 是否可以定义变量或宏来防止重复打印文本块 用例是我有一个表生成一个大的超链接网格 链接如下所示 http www a big long big big long hy
  • 包括来自raw.github.com的js

    我有一个 github com 演示页面 链接到https raw github com master file js https raw github com master file js这样我就不需要总是复制 js文件转移到gh pag
  • 如何分叉一个已经分叉了上游的仓库?

    我想分叉 namecoin namecoin 但我已经分叉了比特币 比特币 后者是前者的上游父级 叉链是 比特币 比特币 gt vinced namecoin gt namecoin namecoin 当我分叉 namecoin namec
  • Git 会删除空文件夹吗? [复制]

    这个问题在这里已经有答案了 我已提交一个项目并将其推送到我的 GitHub 帐户 该项目包含以下部分文件结构 server conf some files java lib java 和 lib 文件夹为空 从 GitHub 下载我的项目时
  • 如何使用 PyGithub 创建新存储库

    如何使用 PyGithub 在 Github 上创建新的存储库 我特别想知道如何使用create repo http jacquev6 net PyGithub v1 github objects AuthenticatedUser htm
  • GitHub Action 工作流程未运行

    我有一个 GitHub 操作工作流程文件 myrepo github workflows Build Webpage yml 它包含以下内容 name Webpage Build on push branches webpage jobs
  • 如何计算 OpenID Connect 服务器的指纹?

    创建 OpenID Connect 提供商 例如 AWS 时 我需要指定一个指纹对于连接器 它是什么 我如何获得它 例如 从如何在不使用密钥的情况下将 GitHub 操作与 AWS 部署连接起来 https stackoverflow co
  • 返回到 Github Desktop 中的上一个提交

    我正在尝试使用 GitHub Desktop 即 GUI 应用程序 而不是命令行 返回到先前的提交 在同一分支上 我认为这是一个核心功能 因为它是首先使用源代码控制的主要原因 我可以看到可以恢复提交 但这并不是我真正想要的 因为它创建了一个
  • 无法从另一台计算机访问 git 分支

    基本上我看不到另一台计算机上的分支 我跑 git branch a 在家用电脑上我得到 C learn ror sample app filling in layout gt git branch a filling in layout m
  • 如何防止克隆我的 github 存储库?

    我正在尝试找到一种方法来防止从 github 存储库克隆 例如 我有一个私有存储库 有些人在该存储库中工作 在公司计算机中 团队中的每个人都设置了授权级别 当我在 github 上为某个用户设置授权时 该存储库可在他 她自己的 github
  • 将文件从一个存储库复制到另一个存储库的 github 操作

    我的公司创建了一种在环境之间移动文件的复杂方法 现在我们希望将某些构建的 JS 文件 已转换和缩小 从一个 github 存储库移动到另一个 使用 github 操作可以实现这一点吗 最简单的选择是克隆目标存储库 将文件复制到目标存储库中
  • 在 gitHub 网站上哪里可以查看提交历史记录?

    我正在 gitHub 上寻找所有过去 git 提交的历史记录按钮 这些是 gitHub 页面上的按钮 代码 问题 拉取请求 行动 项目 维基百科 安全 见解 设置 1 家分店 0 标签 在存储库页面上 大绿色下拉代码按钮下方有一个提交按钮

随机推荐

  • 在 PyQt 应用程序上使用 cx_freeze 时出现语法错误

    当尝试使用 PyQt4 从 Python 3 脚本构建 exe 文件时 这是一个非常烦人的问题 我认为这与使用有关uic动态加载模块 ui files cx freeze返回 File E Python32 32 lib site pack
  • 使用 array_multisort() 对多维 PHP 数组进行不区分大小写的排序

    经过大量搜索后 我无法找到有关如何使用 array multisort 按一个字段不区分大小写地对多维数组进行排序的良好解释 我发现在处理数据库查询信息时这是一个非常有用的功能 因此我想分享一下 我应该注意这仅适用于 php 5 4 Exa
  • ANDROID:不同尺寸的ImageView

    我是 android studio 的新手 因此 如果问题很琐碎 请原谅 我的问题是理解布局 我的布局和相应的值文件夹如下所示 我的问题是没有选择正确的布局 例如 对于 Nexus 4 4 7 英寸 768x1280 xhdpi 在横向模式
  • R Shiny:删除 ggplot2 背景以使其透明

    我想让 R Shiny Server 上的 ggplots 透明 我的绘图 ui R 如下 plotOutput malPie width 95 在 server R 中我的绘图函数如下 c lt ggplot dataFrame aes
  • 在pentaho中休息客户端

    我对 pentaho 数据集成工具非常陌生 我想从我的 pentaho 中使用一个安静的服务 post web 服务 为此 我发现我应该使用休息客户端 但是当我给出网址和正文 因为我想使用后期服务 时 它并没有在数据库中进行必要的更改 谁能
  • Moment.js 包含日期格式中间的文本

    我的格式为 2015 年 1 月 27 日上午 8 17 我需要使用 moment js 显示它 我正在使用格式 moment format MMM D YYYY at h mm A z 除了 at 这个词之外 一切都很好 我怎样才能让这个
  • 在oracle中创建密码字段

    安全外部密码存储 有什么用 我可以使用 安全外部密码存储 在 Oracle 表中创建密码字段吗 或者如何在不使用 安全外部密码存储 的情况下在 Oracle 表中创建密码字段 一种不使用 安全外部密码存储 无论是什么 的方法是将 RAW 1
  • 休眠级联持续

    我有一个关于 Hibernate 的一般性问题正在解决 我有 A 类和 B 类 其中 B 依赖于 A 在我的代码中 当我调用 em persist objOfTypeA 时 我希望插入并插入到表 AAA 和 BBB 中 如果我手动保留 A
  • Powershell:递归移动文件

    我正在尝试将所有构建输出文件和文件夹复制到Bin文件夹 输出目录 Bin 除了一些保留在输出目录 The Bin文件夹永远不会被删除 初始条件 Output config log4net file1 txt file2 txt file3
  • 删除 R 图形设备中的所有边距

    所以我在摆脱图形设备的整个边距时遇到了一些麻烦 我已将 mar 设置为 0 但边缘周围仍然存在一些持久空间 例如 plot new par mar c 0 0 0 0 plot window c 0 1 c 0 1 points c 1 1
  • 如何使用 foreachPartition 在 Spark 中为每个分区高效构建一个 ML 模型?

    我正在尝试为数据集的每个分区拟合一个 ML 模型 但我不知道如何在 Spark 中执行此操作 我的数据集基本上是这样的按公司划分 Company Features Target A xxx 0 9 A xxx 0 8 A xxx 1 0 B
  • C2DM实现PHP代码

    我正在创建使用 C2DM 推送通知的 Android 应用程序 但我在创建 php 代码以使用 c2dm 发送消息时遇到问题 请指导我如何使用 php 代码发送消息 实际上存在一个问题 即如何获取客户端身份验证令牌 我见过http code
  • ASP.NET MVC:如何设置 web.config 进行 LDAP 身份验证?

    我有一个正在运行的 LDAP 服务器 其参数如下 OU users OU mydomain O this domain LDAP myhost 389 I 成功地 access 使用通用 LDAP 客户端 就像 Jarek Gawor 的
  • 在 LINQ 中实现“不在”(又名“不存在”)逻辑

    Setup 我有两个List
  • Objective C 的 iPhone 开发中的“委托”是什么? [复制]

    这个问题在这里已经有答案了 Objective C 的 iPhone 开发中的 委托 是什么 委托是一个指向对象的指针 该对象具有委托持有者知道如何调用的一组方法 换句话说 就是启用特定回调的机制来自后来创建的对象 A 很好的例子是UIAl
  • 过滤二维数组并从中间返回坐标

    我有一个由零组成的二维数组 在 1 6 和 2 7 处有一些正整数 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
  • Laravel 4 控制器测试 - 太多 $this->call() 后出现 ErrorException - 为什么?

    我非常感谢有关我遇到的 Laravel 4 问题的帮助 我正在测试控制器路由 特别是负责路由调查问卷响应的控制器 我正在测试以下场景 用户尝试跳过问题 用户请求不存在的问题 等等 到目前为止 我为所有场景编写的测试都可以使用 PHPunit
  • Skipgrams 上下文(kwic)中的关键字?

    我使用 Quanteda 对 ngram 和 token 进行上下文分析中的关键字 效果很好 我现在想对skipgrams 执行此操作 捕获 进入障碍 的上下文以及 和 进入障碍 下面的代码是一个空的 kwic 对象 但我不知道我做错了什么
  • 从 PERL LibXML 解析器获取完整的 XML 字符串

    我有以下需要处理的 XML table table
  • 仅使用 GitHub Actions 在特定分支上运行作业

    我对 GitHub Actions 比较陌生 我有 2 份工作 一份运行我的测试 另一份将我的项目部署到服务器上 显然 我希望测试在每个分支上运行 但是只有当某些内容被推送到 master 时才应该进行部署 我正在努力寻找一种在特定分支上运