如果分支已更新特定目录中的文件,则运行 github 操作

2023-12-30

文件结构:

apps
-- app-1
-- app-2
libs
-- lib-1
-- lib-2

我们有一些测试,只有在文件发生更改的情况下才应该运行lib-2。 我尝试过做

on:
  push:
    paths:
      - 'libs/lib-2/**'

但它仅在文件来自lib-2被推送到提交中,但如果之后推送了其他一些代码,则不会运行。 想象测试失败lib-2,然后开发人员已提交文件lib-1在下一次提交和测试中,之前的更改将不会运行,并且 github 会认为检查成功。

如果某个目录中的文件在分支中发生更改,无论在哪个提交中,是否有办法运行操作?


感谢@guifalourd,我设计了一个解决方案。

name: 'UI-kit Tests'
on:
  pull_request:
    branches:
      - proto
      - develop
      - staging
      - master
jobs:
  filter-ui-kit:
    runs-on: ubuntu-latest
    name: Filter Ui kit
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Get changed files in the docs folder
        id: changed-files-specific
        uses: tj-actions/changed-files@v34
        with:
          files: libs/ui-kit/**

      - name: Run step if any file(s) in the docs folder change
        if: steps.changed-files-specific.outputs.any_changed == 'true'
        run: echo UI-kit is affected

      - name: Prevent from running
        if: steps.changed-files-specific.outputs.any_changed != 'true'
        run: exit 1
  test:
    timeout-minutes: 60
    runs-on: ubuntu-latest
    needs: [filter-ui-kit]
    steps:
      ... test actions goes there
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果分支已更新特定目录中的文件,则运行 github 操作 的相关文章

  • Git推送大文件时远端意外挂断

    当我尝试推送到我的 bitbucket 存储库时 出现以下错误 事实上 在 GitHub 中也是如此 数物体 48 完成 增量压缩最多使用 2 个线程 压缩对象 100 38 38 完成 写入对象 100 48 48 1 95 MiB 38
  • 如何为 github 中两个分支之间的单个文件生成差异

    我需要为单个文件生成一个 diff 以显示两个版本之间的差异 这实际上是 github 中的标签 然后我想通过电子邮件将此差异发送给某人 因此差异的 github URL 将是理想的选择 github 比较视图将允许我对所有更改的文件执行此
  • 使用两个帐户推送到 Git

    我跟着这个tuotrial http code tutsplus com tutorials how to work with github and multiple accounts net 22574关于如何在同一台计算机上拥有两个单独
  • MsDeploy 虚拟目录在部署时转换为虚拟应用程序

    为了使我的 CMS 正常工作 需要将其部署到 www 根目录下的虚拟目录 以便它可以访问 通过反射 要管理的网站 注意 CMS N2CMS 当使用 Visual Studio 发布到网络 时 一切都很好 但是 当我通过 msbuild 命令
  • 从 master 更改为新的默认分支 git

    这是一个场景 我们有一个默认的分支 Master 我们以此为基础 创建分支并向上推等等 我们现在创建了一个Develop分支Master并将其设置为默认开发分支 我想知道的是 我现在如何知道我的 git pull 命令是否通过命令行请求默认
  • 如何使用“gem install”命令从私有 GitHub 存储库安装 gem

    如何在本地安装托管在 GitHub 上的私人存储库中的 gem 特别是 我们通过gem install命令而不是在 Bundler 中使用 因为它是一个命令行工具 我尝试这样做 gem install githubname repo s h
  • 如何删除 Github Desktop 上的本地分支?

    上周我将 Windows Github 升级到Github 桌面 https desktop github com 这肯定比他们上次为 Github Windows 所做的更新要快得多 它还有一个不错的提交视觉时间表 也许我很愚蠢 但是删除
  • TeamCity 将功能分支推送到主分支

    有没有办法将成功构建的功能分支推送到另一个分支 我想要这样的东西 Git 存储库 Gitorious GitHub 等 分支机构 master 当前项目的代码 质量保证 代码等待 QA 的分支 功能分支 许多远程分支 开发人员可以在其中开发
  • 从 github 中删除子项目提交

    我有两个存储库A and B 我错误地在我的机器上将仓库 B 克隆到了 A 内 我从存储库 B 中删除了所有代码 但是当我在源上从 A 推送并合并代码时 它还显示了子项目提交B在 Github 仓库上 我想从我的 master 上删除子项目
  • 将 github 上的包安装到 Spyder 中

    我一直在尝试安装并导入mpl finance来自 github 的包 在我的 Spyder 环境中没有成功 我努力了 pip install e git https github com matplotlib mpl finance git
  • 如何签出仅在“git ls-remote”中列出的分支?

    我遇到了无法切换到仅列出的分支的情况git ls remote 这是详细信息 我分叉了一个 github repoA 作为 repoB 创建了自己的分支并将其推送到 ComputerA 中的 repoB 在 ComputerB 中 我将分叉
  • 从另一个工作流程触发新的工作流程?

    我可以从另一个工作流程触发新的工作流程吗 我试图在第一个工作流程推送新版本后运行工作流程 但它似乎忽略了它 正如这里所描述的 https stackoverflow com a 65698892 4964553 您可以使用以下命令触发另一个
  • 哈德逊依赖项

    我已经设置了我的 hudson 工作 A 工作 A 取决于工作 B 和 C 我已经将它们设置为 构建其他项目 尽管每个作业都位于我的工作区中的单独目录中 默认结构 但效果很好 但我需要作业 A 工作区 根文件夹 中的作业 B 和 C 我考虑
  • 如何生成类似github的影响图?

    是否有一些程序 或者我错过的一些神奇的 git 插件 可以从 git 存储库获取影响图或类似的东西 而无需通过 github 就数据收集而言 我可以生成图表 我不确定从哪里开始编写自己的代码 我假设有一些标志我可以传递给 git log 来
  • 在 Windows 上使用 Git - 意外丢失了大量工作。我可以拿回来吗?

    我很困惑 我想我已经失去了几个小时的工作时间 我之前在 Git 中编辑了一个文件 我保存了它 但没有提交 我确实做了一些其他文件更改 并提交并推送了它们 然而 有一个文件被搞乱了 所以我单击了最后一次成功的提交 然后按了 回滚到此提交 令我
  • 如何根据特定条件触发电子邮件以在 Jenkins 中成功构建

    每当某个条件在构建后步骤的执行 shell 中成立时成功的构建 我想触发电子邮件发送 问题是 即使条件不成立 构建也会被视为success 我正在尝试实现的内容 if condition true then
  • Git 删除其他人从远程所做的最后提交

    所以 我的情况是 错误地 我已经授予某人对我的分支的承诺 现在 在我的本地 我已经进行了提交 当我尝试将其推送到远程时 它显示远程在前面 因为对方已经将他的代码推送到了这个分支并进行了多次提交 现在 我可以从远程删除这些提交而不将拉取到本地
  • 如何从 TeamCity 提取工件?

    我想从 teamcity 中提取工件 我一直在尝试使用 c 和 HtmlAgilityPack 访问网站并查找最新版本及其工件 我目前陷入登录困境 我想我只需要发送会话 Cookie 即可 我的方向正确吗 还有其他人尝试过吗 我意识到使用构
  • Github 操作错误:bash:第 3 行:npm:找不到命令

    我正在尝试通过 ssh 将 Nodejs 应用程序从 github 部署到远程 ubuntu 服务器 这是我的 main yml name Node Github CI on push branches master jobs deploy
  • git GUI 中的 Git add (ctrl+A) 和 Stage to Commit (ctrl+T) 有什么区别?

    If git add CTRL A starts tracking changes AND stages changes to already tracked files why should I ever use Stage to Com

随机推荐