diff options
author | FuXiaoHei <fuxiaohei@vip.qq.com> | 2023-09-06 15:41:06 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-06 07:41:06 +0000 |
commit | 460a2b0edffe71d9e64633beaa1071fcf4a33369 (patch) | |
tree | 361d9adbf0db9bd12f72ac0034fdcdd2dcf65cfc /services/cron/tasks_basic.go | |
parent | 113eb5fc24f0890950167ca0dcc914bf858861ff (diff) | |
download | gitea-460a2b0edffe71d9e64633beaa1071fcf4a33369.tar.gz gitea-460a2b0edffe71d9e64633beaa1071fcf4a33369.zip |
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.
Diffstat (limited to 'services/cron/tasks_basic.go')
-rw-r--r-- | services/cron/tasks_basic.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/services/cron/tasks_basic.go b/services/cron/tasks_basic.go index 2a213ae515..3869382d22 100644 --- a/services/cron/tasks_basic.go +++ b/services/cron/tasks_basic.go @@ -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() + } } |