mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	Fix: skip paths check on tag push events in workflows (#34602)
## Summary Fix skipping of `paths` condition in workflows triggered by tag push events. ## Details - Ensure workflows triggered by tag pushes bypass the `paths` filter check. - Prevent incorrect skipping of workflows due to `paths` conditions on tag pushes. - Added and updated unit tests to verify correct behavior.
This commit is contained in:
		@@ -313,6 +313,10 @@ func matchPushEvent(commit *git.Commit, pushPayload *api.PushPayload, evt *jobpa
 | 
			
		||||
				matchTimes++
 | 
			
		||||
			}
 | 
			
		||||
		case "paths":
 | 
			
		||||
			if refName.IsTag() {
 | 
			
		||||
				matchTimes++
 | 
			
		||||
				break
 | 
			
		||||
			}
 | 
			
		||||
			filesChanged, err := commit.GetFilesChangedSinceCommit(pushPayload.Before)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", commit.ID.String(), err)
 | 
			
		||||
@@ -326,6 +330,10 @@ func matchPushEvent(commit *git.Commit, pushPayload *api.PushPayload, evt *jobpa
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		case "paths-ignore":
 | 
			
		||||
			if refName.IsTag() {
 | 
			
		||||
				matchTimes++
 | 
			
		||||
				break
 | 
			
		||||
			}
 | 
			
		||||
			filesChanged, err := commit.GetFilesChangedSinceCommit(pushPayload.Before)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", commit.ID.String(), err)
 | 
			
		||||
 
 | 
			
		||||
@@ -125,6 +125,24 @@ func TestDetectMatched(t *testing.T) {
 | 
			
		||||
			yamlOn:       "on: schedule",
 | 
			
		||||
			expected:     true,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			desc:         "push to tag matches workflow with paths condition (should skip paths check)",
 | 
			
		||||
			triggedEvent: webhook_module.HookEventPush,
 | 
			
		||||
			payload: &api.PushPayload{
 | 
			
		||||
				Ref:    "refs/tags/v1.0.0",
 | 
			
		||||
				Before: "0000000",
 | 
			
		||||
				Commits: []*api.PayloadCommit{
 | 
			
		||||
					{
 | 
			
		||||
						ID:      "abcdef123456",
 | 
			
		||||
						Added:   []string{"src/main.go"},
 | 
			
		||||
						Message: "Release v1.0.0",
 | 
			
		||||
					},
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			commit:   nil,
 | 
			
		||||
			yamlOn:   "on:\n  push:\n    paths:\n      - src/**",
 | 
			
		||||
			expected: true,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, tc := range testCases {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user