-
-
Notifications
You must be signed in to change notification settings - Fork 5.9k
Description
Description
I wondered why this Gitea Actions workflow is triggered while changing the workflow file
Enable Gitea Actions and add the following file
Add .github/workflows/main.yml
on:
push:
paths-ignore:
- '**.yml'
jobs:
_:
runs-on: ubuntu-latest
steps:
- run: exit 0
I expect that the workflow doesn't trigger unless I add a file without .yml extension
Workaround exclude the empty filepath
on:
push:
paths-ignore:
- ''
- '**.yml'
jobs:
_:
runs-on: ubuntu-latest
steps:
- run: exit 0
I tracked the bug down to this function:
gitea/modules/git/repo_commit.go
Line 190 in c775053
return strings.Split(string(stdout), "\n"), nil |
Callstack
gitea/modules/actions/workflows.go
Line 211 in d149093
filesChanged, err := commit.GetFilesChangedSinceCommit(pushPayload.Before) Lines 293 to 295 in 6b0df6d
func (c *Commit) GetFilesChangedSinceCommit(pastCommit string) ([]string, error) { return c.repo.getFilesChanged(pastCommit, c.ID.String()) }
Based on comment in another very similar function (without this bug)
gitea/modules/git/repo_compare.go
Line 290 in 6b0df6d
// Because Git will always emit filenames with a terminal NUL ignore the last entry in the split - which will always be empty. |
the empty filepath should be removed by the function before returning the path.
Furthermore it looks like these functions are duplicated, one bugfree and the other not.
Gitea Version
1.19.0+53-gdff3ce089
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
2.17.1
Operating System
Linux
How are you running Gitea?
I just downloaded https://dl.gitea.com/gitea/1.19/gitea-1.19-linux-arm64.xz and enabled actions for testing purposes.
Database
SQLite
Activity
Repository.getFilesChanged
to fix Actionspaths
andpaths-ignore
filter #23920Remove `Repository.getFilesChanged` to fix Actions `paths` and `paths…
Repository.getFilesChanged
to fix Actionspaths
andpaths-ignore
filter (#23920) #23969Remove `Repository.getFilesChanged` to fix Actions `paths` and `paths…
Remove `Repository.getFilesChanged` to fix Actions `paths` and `paths…