通过路径更改触发操作并推送标签

问题描述 投票:0回答:1

我正在尝试编写一个 GitHub 操作,该操作应在更新提供的路径时触发并且推送标签。

Github 文档建议,如果提供

tags
paths
,则标签优先。

我试图用逻辑AND来完成这项工作,如下所示:

name: ci
on:
  push:
    paths:
      - 'dir1'
    tags:
      - 'v*'
      ...

使用上面的代码,即使其他目录有更新并且推送了标签,该操作也会被触发。

我也尝试了以下方法,但没有按预期工作。

name: ci
on:
  push:
    paths:
      - 'dir1'
...

jobs:
  push-artifacts:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: push
        if: "startsWith(github.ref, 'refs.tags/v')"
        <Push artifact>

并通过使用

dorny/paths-filter
行动:

name: ci
on:
  push:
    tags:
      - 'v*'
...

jobs:
  push-artifacts:
    runs-on: ubuntu-latest
    steps:
      - name: Check paths
        id: filter
        uses: dorny/paths-filter@v3
        with:
          filters: |
            src:
              - 'dir1'
        
      - uses: actions/checkout@v3
      - name: push
        if: steps.filter.outputs.src == 'true'
        ...
        <Push artifact>

有人可以帮我实现这个目标吗?

github-actions
1个回答
0
投票

使用路径过滤时,您需要注意

dir1
文件夹内的任何更改:

name: ci
on:
  push:
    tags:
      - 'v*'
...

jobs:
  push-artifacts:
    runs-on: ubuntu-latest
    steps:
      - name: Check paths
        id: filter
        uses: dorny/paths-filter@v3
        with:
          filters: |
            src:
              - 'dir1/**'
        
      - uses: actions/checkout@v3
      - name: push
        if: steps.filter.outputs.src == 'true'
        ...
        <Push artifact>

否则它将直接寻找对文件夹

dir1
的更改,我认为这不是您想要实现的目标。

© www.soinside.com 2019 - 2024. All rights reserved.