mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 03:18:24 +00:00 
			
		
		
		
	Artifacts retention and auto clean up (#26131)
Currently, Artifact does not have an expiration and automatic cleanup mechanism, and this feature needs to be added. It contains the following key points: - [x] add global artifact retention days option in config file. Default value is 90 days. - [x] add cron task to clean up expired artifacts. It should run once a day. - [x] support custom retention period from `retention-days: 5` in `upload-artifact@v3`. - [x] artifacts link in actions view should be non-clickable text when expired.
This commit is contained in:
		| @@ -13,6 +13,7 @@ import ( | ||||
| 	"code.gitea.io/gitea/models/webhook" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
| 	"code.gitea.io/gitea/services/actions" | ||||
| 	"code.gitea.io/gitea/services/auth" | ||||
| 	"code.gitea.io/gitea/services/migrations" | ||||
| 	mirror_service "code.gitea.io/gitea/services/mirror" | ||||
| @@ -156,6 +157,20 @@ func registerCleanupPackages() { | ||||
| 	}) | ||||
| } | ||||
|  | ||||
| func registerActionsCleanup() { | ||||
| 	RegisterTaskFatal("cleanup_actions", &OlderThanConfig{ | ||||
| 		BaseConfig: BaseConfig{ | ||||
| 			Enabled:    true, | ||||
| 			RunAtStart: true, | ||||
| 			Schedule:   "@midnight", | ||||
| 		}, | ||||
| 		OlderThan: 24 * time.Hour, | ||||
| 	}, func(ctx context.Context, _ *user_model.User, config Config) error { | ||||
| 		realConfig := config.(*OlderThanConfig) | ||||
| 		return actions.Cleanup(ctx, realConfig.OlderThan) | ||||
| 	}) | ||||
| } | ||||
|  | ||||
| func initBasicTasks() { | ||||
| 	if setting.Mirror.Enabled { | ||||
| 		registerUpdateMirrorTask() | ||||
| @@ -172,4 +187,7 @@ func initBasicTasks() { | ||||
| 	if setting.Packages.Enabled { | ||||
| 		registerCleanupPackages() | ||||
| 	} | ||||
| 	if setting.Actions.Enabled { | ||||
| 		registerActionsCleanup() | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user