mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Fix ephemeral runner deletion (#34447)
* repository deletion, delete ephemeral runners with active tasks as well skips regular cleanup * user deletion, delete ephemeral runners with active tasks as well skips regular cleanup * delete ephemeral runners once status changes to done * You no longer see used ephemeral runners after the task is done * if you see one the cron job takes care of it
This commit is contained in:
		| @@ -41,8 +41,6 @@ func testActionsRunnerAdmin(t *testing.T) { | ||||
| 	runnerList := api.ActionRunnersResponse{} | ||||
| 	DecodeJSON(t, runnerListResp, &runnerList) | ||||
|  | ||||
| 	assert.Len(t, runnerList.Entries, 4) | ||||
|  | ||||
| 	idx := slices.IndexFunc(runnerList.Entries, func(e *api.ActionRunner) bool { return e.ID == 34349 }) | ||||
| 	require.NotEqual(t, -1, idx) | ||||
| 	expectedRunner := runnerList.Entries[idx] | ||||
| @@ -160,16 +158,20 @@ func testActionsRunnerOwner(t *testing.T) { | ||||
| 		runnerList := api.ActionRunnersResponse{} | ||||
| 		DecodeJSON(t, runnerListResp, &runnerList) | ||||
|  | ||||
| 		assert.Len(t, runnerList.Entries, 1) | ||||
| 		assert.Equal(t, "runner_to_be_deleted-org", runnerList.Entries[0].Name) | ||||
| 		assert.Equal(t, int64(34347), runnerList.Entries[0].ID) | ||||
| 		assert.False(t, runnerList.Entries[0].Ephemeral) | ||||
| 		assert.Len(t, runnerList.Entries[0].Labels, 2) | ||||
| 		assert.Equal(t, "runner_to_be_deleted", runnerList.Entries[0].Labels[0].Name) | ||||
| 		assert.Equal(t, "linux", runnerList.Entries[0].Labels[1].Name) | ||||
| 		idx := slices.IndexFunc(runnerList.Entries, func(e *api.ActionRunner) bool { return e.ID == 34347 }) | ||||
| 		require.NotEqual(t, -1, idx) | ||||
| 		expectedRunner := runnerList.Entries[idx] | ||||
|  | ||||
| 		require.NotNil(t, expectedRunner) | ||||
| 		assert.Equal(t, "runner_to_be_deleted-org", expectedRunner.Name) | ||||
| 		assert.Equal(t, int64(34347), expectedRunner.ID) | ||||
| 		assert.False(t, expectedRunner.Ephemeral) | ||||
| 		assert.Len(t, expectedRunner.Labels, 2) | ||||
| 		assert.Equal(t, "runner_to_be_deleted", expectedRunner.Labels[0].Name) | ||||
| 		assert.Equal(t, "linux", expectedRunner.Labels[1].Name) | ||||
|  | ||||
| 		// Verify get the runner by id | ||||
| 		req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", runnerList.Entries[0].ID)).AddTokenAuth(token) | ||||
| 		req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", expectedRunner.ID)).AddTokenAuth(token) | ||||
| 		runnerResp := MakeRequest(t, req, http.StatusOK) | ||||
|  | ||||
| 		runner := api.ActionRunner{} | ||||
| @@ -183,11 +185,11 @@ func testActionsRunnerOwner(t *testing.T) { | ||||
| 		assert.Equal(t, "linux", runner.Labels[1].Name) | ||||
|  | ||||
| 		// Verify delete the runner by id | ||||
| 		req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", runnerList.Entries[0].ID)).AddTokenAuth(token) | ||||
| 		req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", expectedRunner.ID)).AddTokenAuth(token) | ||||
| 		MakeRequest(t, req, http.StatusNoContent) | ||||
|  | ||||
| 		// Verify runner deletion | ||||
| 		req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", runnerList.Entries[0].ID)).AddTokenAuth(token) | ||||
| 		req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/org3/actions/runners/%d", expectedRunner.ID)).AddTokenAuth(token) | ||||
| 		MakeRequest(t, req, http.StatusNotFound) | ||||
| 	}) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user