Merge pull request 'fix: don't cancel schedule workflows on push to main branch' (#5470) from Kwonunn/forgejo:dont-cancel-schedule-workflow into forgejo
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5470
This commit is contained in:
commit
e299a7f4cd
5 changed files with 17 additions and 15 deletions
|
@ -118,21 +118,23 @@ func DeleteScheduleTaskByRepo(ctx context.Context, id int64) error {
|
||||||
return committer.Commit()
|
return committer.Commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
func CleanRepoScheduleTasks(ctx context.Context, repo *repo_model.Repository) error {
|
func CleanRepoScheduleTasks(ctx context.Context, repo *repo_model.Repository, cancelPreviousJobs bool) error {
|
||||||
// If actions disabled when there is schedule task, this will remove the outdated schedule tasks
|
// If actions disabled when there is schedule task, this will remove the outdated schedule tasks
|
||||||
// There is no other place we can do this because the app.ini will be changed manually
|
// There is no other place we can do this because the app.ini will be changed manually
|
||||||
if err := DeleteScheduleTaskByRepo(ctx, repo.ID); err != nil {
|
if err := DeleteScheduleTaskByRepo(ctx, repo.ID); err != nil {
|
||||||
return fmt.Errorf("DeleteCronTaskByRepo: %v", err)
|
return fmt.Errorf("DeleteCronTaskByRepo: %v", err)
|
||||||
}
|
}
|
||||||
// cancel running cron jobs of this repository and delete old schedules
|
if cancelPreviousJobs {
|
||||||
if err := CancelPreviousJobs(
|
// cancel running cron jobs of this repository and delete old schedules
|
||||||
ctx,
|
if err := CancelPreviousJobs(
|
||||||
repo.ID,
|
ctx,
|
||||||
repo.DefaultBranch,
|
repo.ID,
|
||||||
"",
|
repo.DefaultBranch,
|
||||||
webhook_module.HookEventSchedule,
|
"",
|
||||||
); err != nil {
|
webhook_module.HookEventSchedule,
|
||||||
return fmt.Errorf("CancelPreviousJobs: %v", err)
|
); err != nil {
|
||||||
|
return fmt.Errorf("CancelPreviousJobs: %v", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -1061,7 +1061,7 @@ func updateRepoArchivedState(ctx *context.APIContext, opts api.EditRepoOption) e
|
||||||
ctx.Error(http.StatusInternalServerError, "ArchiveRepoState", err)
|
ctx.Error(http.StatusInternalServerError, "ArchiveRepoState", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := actions_model.CleanRepoScheduleTasks(ctx, repo); err != nil {
|
if err := actions_model.CleanRepoScheduleTasks(ctx, repo, true); err != nil {
|
||||||
log.Error("CleanRepoScheduleTasks for archived repo %s/%s: %v", ctx.Repo.Owner.Name, repo.Name, err)
|
log.Error("CleanRepoScheduleTasks for archived repo %s/%s: %v", ctx.Repo.Owner.Name, repo.Name, err)
|
||||||
}
|
}
|
||||||
log.Trace("Repository was archived: %s/%s", ctx.Repo.Owner.Name, repo.Name)
|
log.Trace("Repository was archived: %s/%s", ctx.Repo.Owner.Name, repo.Name)
|
||||||
|
|
|
@ -1031,7 +1031,7 @@ func SettingsPost(ctx *context.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := actions_model.CleanRepoScheduleTasks(ctx, repo); err != nil {
|
if err := actions_model.CleanRepoScheduleTasks(ctx, repo, true); err != nil {
|
||||||
log.Error("CleanRepoScheduleTasks for archived repo %s/%s: %v", ctx.Repo.Owner.Name, repo.Name, err)
|
log.Error("CleanRepoScheduleTasks for archived repo %s/%s: %v", ctx.Repo.Owner.Name, repo.Name, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -130,7 +130,7 @@ func notify(ctx context.Context, input *notifyInput) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if unit_model.TypeActions.UnitGlobalDisabled() {
|
if unit_model.TypeActions.UnitGlobalDisabled() {
|
||||||
if err := actions_model.CleanRepoScheduleTasks(ctx, input.Repo); err != nil {
|
if err := actions_model.CleanRepoScheduleTasks(ctx, input.Repo, true); err != nil {
|
||||||
log.Error("CleanRepoScheduleTasks: %v", err)
|
log.Error("CleanRepoScheduleTasks: %v", err)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -496,7 +496,7 @@ func handleSchedules(
|
||||||
log.Error("CountSchedules: %v", err)
|
log.Error("CountSchedules: %v", err)
|
||||||
return err
|
return err
|
||||||
} else if count > 0 {
|
} else if count > 0 {
|
||||||
if err := actions_model.CleanRepoScheduleTasks(ctx, input.Repo); err != nil {
|
if err := actions_model.CleanRepoScheduleTasks(ctx, input.Repo, false); err != nil {
|
||||||
log.Error("CleanRepoScheduleTasks: %v", err)
|
log.Error("CleanRepoScheduleTasks: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ func UpdateRepositoryUnits(ctx context.Context, repo *repo_model.Repository, uni
|
||||||
}
|
}
|
||||||
|
|
||||||
if slices.Contains(deleteUnitTypes, unit.TypeActions) {
|
if slices.Contains(deleteUnitTypes, unit.TypeActions) {
|
||||||
if err := actions_model.CleanRepoScheduleTasks(ctx, repo); err != nil {
|
if err := actions_model.CleanRepoScheduleTasks(ctx, repo, true); err != nil {
|
||||||
log.Error("CleanRepoScheduleTasks: %v", err)
|
log.Error("CleanRepoScheduleTasks: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue