mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-08-05 09:55:20 +02:00
fix: disable Forgejo Actions email notifications on recovery (#8374)
- Make the migration to add an index a noop - do not remove it as it would break v12.next & v13.next - Keep the logic that relies on finding the last run, only always fail to find which is the same as assuming each run is one of a kind Refs forgejo/forgejo#8373 Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8374 Reviewed-by: Gusted <gusted@noreply.codeberg.org> Co-authored-by: Earl Warren <contact@earl-warren.org> Co-committed-by: Earl Warren <contact@earl-warren.org>
This commit is contained in:
parent
bcde3aea4f
commit
c0eeb75322
6 changed files with 10 additions and 144 deletions
|
@ -49,41 +49,22 @@ func (m *mockNotifier) ActionRunNowDone(ctx context.Context, run *actions_model.
|
|||
assert.Equal(m.t, m.runID, run.ID)
|
||||
assert.Equal(m.t, actions_model.StatusFailure, run.Status)
|
||||
assert.Equal(m.t, actions_model.StatusRunning, priorStatus)
|
||||
assert.Equal(m.t, m.lastRunID, lastRun.ID)
|
||||
assert.Equal(m.t, actions_model.StatusSuccess, lastRun.Status)
|
||||
assert.True(m.t, run.NotifyEmail)
|
||||
case 2:
|
||||
assert.Equal(m.t, m.runID, run.ID)
|
||||
assert.Equal(m.t, actions_model.StatusCancelled, run.Status)
|
||||
assert.Equal(m.t, actions_model.StatusRunning, priorStatus)
|
||||
assert.Equal(m.t, m.lastRunID, lastRun.ID)
|
||||
assert.Equal(m.t, actions_model.StatusFailure, lastRun.Status)
|
||||
assert.True(m.t, run.NotifyEmail)
|
||||
case 3:
|
||||
assert.Equal(m.t, m.runID, run.ID)
|
||||
assert.Equal(m.t, actions_model.StatusSuccess, run.Status)
|
||||
assert.Equal(m.t, actions_model.StatusRunning, priorStatus)
|
||||
assert.Equal(m.t, m.lastRunID, lastRun.ID)
|
||||
assert.Equal(m.t, actions_model.StatusCancelled, lastRun.Status)
|
||||
assert.True(m.t, run.NotifyEmail)
|
||||
case 4:
|
||||
assert.Equal(m.t, m.runID, run.ID)
|
||||
assert.Equal(m.t, actions_model.StatusSuccess, run.Status)
|
||||
assert.Equal(m.t, actions_model.StatusRunning, priorStatus)
|
||||
assert.Equal(m.t, m.lastRunID, lastRun.ID)
|
||||
assert.Equal(m.t, actions_model.StatusSuccess, lastRun.Status)
|
||||
assert.True(m.t, run.NotifyEmail)
|
||||
default:
|
||||
assert.Fail(m.t, "too many notifications")
|
||||
}
|
||||
m.lastRunID = m.runID
|
||||
m.runID++
|
||||
m.testIdx++
|
||||
}
|
||||
|
||||
// ensure all tests have been run
|
||||
func (m *mockNotifier) complete() {
|
||||
assert.Equal(m.t, 5, m.testIdx)
|
||||
assert.Equal(m.t, 3, m.testIdx)
|
||||
}
|
||||
|
||||
func TestActionNowDoneNotification(t *testing.T) {
|
||||
|
@ -159,24 +140,6 @@ func TestActionNowDoneNotification(t *testing.T) {
|
|||
task = runner.fetchTask(t)
|
||||
require.NoError(t, actions_service.StopTask(db.DefaultContext, task.Id, actions_model.StatusCancelled))
|
||||
|
||||
// we can't differentiate different runs without a delay
|
||||
time.Sleep(time.Millisecond * 2000)
|
||||
|
||||
// 3: successful run after failure
|
||||
_, _, err = workflow.Dispatch(db.DefaultContext, inputGetter, repo, user2)
|
||||
require.NoError(t, err)
|
||||
task = runner.fetchTask(t)
|
||||
runner.succeedAtTask(t, task)
|
||||
|
||||
// we can't differentiate different runs without a delay
|
||||
time.Sleep(time.Millisecond * 2000)
|
||||
|
||||
// 4: successful run after success
|
||||
_, _, err = workflow.Dispatch(db.DefaultContext, inputGetter, repo, user2)
|
||||
require.NoError(t, err)
|
||||
task = runner.fetchTask(t)
|
||||
runner.succeedAtTask(t, task)
|
||||
|
||||
notifier.complete()
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue