Skip to content

Feature: Ephemeral action runners #33570

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 47 commits into from
Mar 14, 2025
Merged
Changes from 1 commit
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
f40f079
wip: ephemeral runners
ChristopherHX Nov 9, 2024
088ede6
fix
ChristopherHX Nov 9, 2024
f663240
Merge branch 'main' of https://github.com/go-gitea/gitea into ephemer…
ChristopherHX Feb 8, 2025
959957a
fix scetch
ChristopherHX Feb 8, 2025
6300bb4
add migration
ChristopherHX Feb 8, 2025
4e2f419
fixup
ChristopherHX Feb 8, 2025
546de66
wip
ChristopherHX Feb 8, 2025
52a96be
Ephemeral proto hack
ChristopherHX Feb 12, 2025
971f9b7
enhance
ChristopherHX Feb 12, 2025
84e02ae
add temporary proto replacement
ChristopherHX Feb 12, 2025
abee827
Merge branch 'main' of https://github.com/go-gitea/gitea into ephemer…
ChristopherHX Feb 12, 2025
0b17e10
migrate change
ChristopherHX Feb 12, 2025
662055b
fix lint
ChristopherHX Feb 12, 2025
e50873f
move ephemeral runner check out of transaction
ChristopherHX Feb 12, 2025
2fe4091
cleanup don't remove every ephemeral runner that has a job assigned
ChristopherHX Feb 13, 2025
6a9c634
Merge branch 'main' of https://github.com/go-gitea/gitea into workflo…
ChristopherHX Feb 22, 2025
8319c9f
fix merge
ChristopherHX Feb 23, 2025
b69a4f1
cleanup
ChristopherHX Feb 23, 2025
e21e91d
remove actions-proto-go fork
ChristopherHX Feb 25, 2025
c87aa86
do not allow to bypass ephemeral check
ChristopherHX Feb 25, 2025
cbea9db
Merge branch 'main' of https://github.com/go-gitea/gitea into ephemer…
ChristopherHX Feb 25, 2025
0823573
Merge branch 'main' of https://github.com/go-gitea/gitea into ephemer…
ChristopherHX Mar 1, 2025
1030081
set ephemeral to false by sql statement
ChristopherHX Mar 4, 2025
17ce36a
quote some sql
ChristopherHX Mar 4, 2025
79fa662
Merge branch 'main' of https://github.com/go-gitea/gitea into ephemer…
ChristopherHX Mar 5, 2025
9f546ab
fix merge error
ChristopherHX Mar 5, 2025
b7a3151
check ci if default false works in mssql
ChristopherHX Mar 5, 2025
8e2085a
remove doAPIDeleteRepository
ChristopherHX Mar 12, 2025
905ec6e
improve sql statement
ChristopherHX Mar 12, 2025
6484e95
Merge branch 'main' of https://github.com/go-gitea/gitea into ephemer…
ChristopherHX Mar 12, 2025
2d555c8
migrate api
ChristopherHX Mar 12, 2025
974c1f2
ensure CleanupEphemeralRunners does work correctly
ChristopherHX Mar 12, 2025
ff3dddd
format
ChristopherHX Mar 12, 2025
01b6f4a
fix test for mssql
ChristopherHX Mar 12, 2025
3362bbb
fix lint
ChristopherHX Mar 12, 2025
3cad61b
remove unused deleteEphemeralRunnerBatchSize
ChristopherHX Mar 12, 2025
8f79a8f
remove broken test (pgsql failure)
ChristopherHX Mar 12, 2025
f4b6e60
remove calling CleanupEphemeralRunners in test
ChristopherHX Mar 12, 2025
e4908f9
revert remove doAPIDeleteRepository to test for problem
ChristopherHX Mar 12, 2025
41213e9
Revert "remove calling CleanupEphemeralRunners in test"
ChristopherHX Mar 12, 2025
3f56e44
Revert "remove broken test (pgsql failure)"
ChristopherHX Mar 12, 2025
7d30577
cleanup
ChristopherHX Mar 12, 2025
4506057
Merge branch 'main' into ephemeral-runners
ChristopherHX Mar 13, 2025
d66292b
fix CleanupEphemeralRunners mysql
ChristopherHX Mar 13, 2025
79146cf
feedback deletebyid
ChristopherHX Mar 13, 2025
21ae2cc
Merge branch 'main' into ephemeral-runners
GiteaBot Mar 14, 2025
4354c37
Merge branch 'main' into ephemeral-runners
GiteaBot Mar 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
cleanup don't remove every ephemeral runner that has a job assigned
  • Loading branch information
ChristopherHX committed Feb 13, 2025
commit 2fe409146307f7fee9bf4c1e4744b14263e06618
2 changes: 1 addition & 1 deletion services/actions/cleanup.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ const deleteEphemeralRunnerBatchSize = 100
// CleanupEphemeralRunners removes used ephemeral runners which are no longer able to process jobs
func CleanupEphemeralRunners(ctx context.Context) error {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also think about to remove offline EphemeralRunners here that didn't connect within 24h as auto cleanup.

We currently cannot remove runners via api.

runners := []*actions_model.ActionRunner{}
err := db.GetEngine(ctx).Join("INNER", "action_task", "action_task.runner_id = action_runner.id").Where("action_runner.ephemeral").Limit(deleteEphemeralRunnerBatchSize).Find(&runners)
err := db.GetEngine(ctx).Join("INNER", "action_task", "action_task.runner_id = action_runner.id").Where("action_runner.ephemeral and action_task.status != ? and action_task.status != ? and action_task.status != ?)", actions_model.StatusWaiting, actions_model.StatusRunning, actions_model.StatusBlocked).Limit(deleteEphemeralRunnerBatchSize).Find(&runners)
if err != nil {
return fmt.Errorf("find runners: %w", err)
}
Expand Down
Loading