添加从页面注册runner功能
This commit is contained in:
@@ -3684,6 +3684,8 @@ runners.status.active = Active
|
||||
runners.status.offline = Offline
|
||||
runners.version = Version
|
||||
runners.reset_registration_token = Reset registration token
|
||||
runners.regist_runner = Register a new runner
|
||||
runners.regist_runner_success = Register a new runner successfully
|
||||
runners.reset_registration_token_success = Runner registration token reset successfully
|
||||
|
||||
runs.all_workflows = All Workflows
|
||||
|
||||
@@ -3675,6 +3675,8 @@ runners.status.active=激活
|
||||
runners.status.offline=离线
|
||||
runners.version=版本
|
||||
runners.reset_registration_token=重置注册令牌
|
||||
runners.regist_runner=注册运行器
|
||||
runners.regist_runner_success=成功注册运行器
|
||||
runners.reset_registration_token_success=成功重置运行器注册令牌
|
||||
|
||||
runs.all_workflows=所有工作流
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
actions_model "code.gitea.io/gitea/models/actions"
|
||||
"code.gitea.io/gitea/models/db"
|
||||
"code.gitea.io/gitea/modules/base"
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
actions_shared "code.gitea.io/gitea/routers/web/shared/actions"
|
||||
shared_user "code.gitea.io/gitea/routers/web/shared/user"
|
||||
@@ -172,6 +173,16 @@ func ResetRunnerRegistrationToken(ctx *context.Context) {
|
||||
actions_shared.RunnerResetRegistrationToken(ctx, rCtx.OwnerID, rCtx.RepoID, rCtx.RedirectLink)
|
||||
}
|
||||
|
||||
func RegisterARunner(ctx *context.Context) {
|
||||
log.Info("Register a runner_test!!!!!!!!!!!")
|
||||
rCtx, err := getRunnersCtx(ctx)
|
||||
if err != nil {
|
||||
ctx.ServerError("getRunnersCtx", err)
|
||||
return
|
||||
}
|
||||
actions_shared.RunnerRegistARunner(ctx, rCtx.OwnerID, rCtx.RepoID, rCtx.RedirectLink)
|
||||
}
|
||||
|
||||
// RunnerDeletePost response for deleting runner
|
||||
func RunnerDeletePost(ctx *context.Context) {
|
||||
rCtx, err := getRunnersCtx(ctx)
|
||||
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
"code.gitea.io/gitea/modules/web"
|
||||
"code.gitea.io/gitea/services/context"
|
||||
"code.gitea.io/gitea/services/forms"
|
||||
runner_services "code.gitea.io/gitea/services/runner"
|
||||
)
|
||||
|
||||
// RunnersList prepares data for runners list
|
||||
@@ -141,6 +142,24 @@ func RunnerResetRegistrationToken(ctx *context.Context, ownerID, repoID int64, r
|
||||
ctx.Redirect(redirectTo)
|
||||
}
|
||||
|
||||
func RunnerRegistARunner(ctx *context.Context, ownerID, repoID int64, redirectTo string) {
|
||||
token, err := actions_model.NewRunnerToken(ctx, ownerID, repoID)
|
||||
if err != nil {
|
||||
ctx.ServerError("NewRunnerToken", err)
|
||||
return
|
||||
}
|
||||
regToken := token.Token
|
||||
err = runner_services.RegistRunner(ctx, regToken)
|
||||
if err != nil {
|
||||
log.Warn("RegistRunner failed: %v, url: %s", err, ctx.Req.URL)
|
||||
ctx.Flash.Warning(ctx.Tr("actions.runners.regist_runner_failed"))
|
||||
ctx.Redirect(redirectTo)
|
||||
return
|
||||
}
|
||||
ctx.Flash.Success(ctx.Tr("actions.runners.regist_runner_success"))
|
||||
ctx.Redirect(redirectTo)
|
||||
}
|
||||
|
||||
// RunnerDeletePost response for deleting a runner
|
||||
func RunnerDeletePost(ctx *context.Context, runnerID int64,
|
||||
successRedirectTo, failedRedirectTo string,
|
||||
|
||||
@@ -461,6 +461,15 @@ func registerRoutes(m *web.Router) {
|
||||
})
|
||||
}
|
||||
|
||||
addSettingsRunnersRegRoutes := func() {
|
||||
m.Group("/runners", func() {
|
||||
m.Get("", repo_setting.Runners)
|
||||
m.Combo("/{runnerid}").Get(repo_setting.RunnersEdit).
|
||||
Post(web.Bind(forms.EditRunnerForm{}), repo_setting.RunnersEditPost)
|
||||
m.Post("/{runnerid}/delete", repo_setting.RunnerDeletePost)
|
||||
m.Get("/regist_runner", repo_setting.RegisterARunner)
|
||||
})
|
||||
}
|
||||
// FIXME: not all routes need go through same middleware.
|
||||
// Especially some AJAX requests, we can reduce middleware number to improve performance.
|
||||
|
||||
@@ -662,6 +671,7 @@ func registerRoutes(m *web.Router) {
|
||||
m.Group("/actions", func() {
|
||||
m.Get("", user_setting.RedirectToDefaultSetting)
|
||||
addSettingsRunnersRoutes()
|
||||
addSettingsRunnersRegRoutes()
|
||||
addSettingsSecretsRoutes()
|
||||
addSettingsVariablesRoutes()
|
||||
}, actions.MustEnableActions)
|
||||
@@ -826,6 +836,7 @@ func registerRoutes(m *web.Router) {
|
||||
m.Group("/actions", func() {
|
||||
m.Get("", admin.RedirectToDefaultSetting)
|
||||
addSettingsRunnersRoutes()
|
||||
addSettingsRunnersRegRoutes()
|
||||
addSettingsVariablesRoutes()
|
||||
})
|
||||
}, adminReq, ctxDataSet("EnableOAuth2", setting.OAuth2.Enabled, "EnablePackages", setting.Packages.Enabled))
|
||||
@@ -969,6 +980,7 @@ func registerRoutes(m *web.Router) {
|
||||
m.Group("/actions", func() {
|
||||
m.Get("", org_setting.RedirectToDefaultSetting)
|
||||
addSettingsRunnersRoutes()
|
||||
addSettingsRunnersRegRoutes()
|
||||
addSettingsSecretsRoutes()
|
||||
addSettingsVariablesRoutes()
|
||||
}, actions.MustEnableActions)
|
||||
@@ -1148,6 +1160,7 @@ func registerRoutes(m *web.Router) {
|
||||
m.Group("/actions", func() {
|
||||
m.Get("", repo_setting.RedirectToDefaultSetting)
|
||||
addSettingsRunnersRoutes()
|
||||
addSettingsRunnersRegRoutes()
|
||||
addSettingsSecretsRoutes()
|
||||
addSettingsVariablesRoutes()
|
||||
}, actions.MustEnableActions)
|
||||
|
||||
@@ -21,7 +21,7 @@ func RegistGlobalRunner(ctx context.Context) error {
|
||||
}
|
||||
runnerCount := setting.Runner.Count
|
||||
for i := 0; i < runnerCount; i++ {
|
||||
err := RegistRunner(&ctx, actionRunnerToken.Token)
|
||||
err := RegistRunner(ctx, actionRunnerToken.Token)
|
||||
if err != nil {
|
||||
return fmt.Errorf("注册Runner失败:%v", err)
|
||||
}
|
||||
@@ -29,12 +29,13 @@ func RegistGlobalRunner(ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func RegistRunner(ctx *context.Context, token string) error {
|
||||
func RegistRunner(ctx context.Context, token string) error {
|
||||
log.Info("开始注册Runner...")
|
||||
cli, err := docker_module.CreateDockerClient(ctx)
|
||||
cli, err := docker_module.CreateDockerClient(&ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
return fmt.Errorf("Docker client创建失败:%v", err)
|
||||
}
|
||||
log.Info("[RegistRunner]Docker client创建成功")
|
||||
defer cli.Close()
|
||||
//拉取act_runner镜像
|
||||
dockerHost, err := docker_module.GetDockerSocketPath()
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
<div class="item">
|
||||
<a href="{{$.Link}}/reset_registration_token">{{ctx.Locale.Tr "actions.runners.reset_registration_token"}}</a>
|
||||
</div>
|
||||
<div class="item">
|
||||
<a href="{{$.Link}}/regist_runner">{{ctx.Locale.Tr "actions.runners.regist_runner"}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user