diff --git a/go.mod b/go.mod index f2d7c013dd..4cbe9e23ac 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ toolchain go1.25.5 godebug x509negativeserial=1 require ( - code.gitea.io/actions-proto-go v0.4.1 + code.gitea.io/actions-proto-go v0.5.0 code.gitea.io/sdk/gitea v0.22.0 codeberg.org/gusted/mcaptcha v0.0.0-20220723083913-4f3072e1d570 connectrpc.com/connect v1.18.1 @@ -313,7 +313,7 @@ replace github.com/nektos/act => gitea.com/gitea/act v0.261.7-0.20251003180512-a replace git.sr.ht/~mariusor/go-xsd-duration => gitea.com/gitea/go-xsd-duration v0.0.0-20220703122237-02e73435a078 // Use GitCaddy fork with capability support -replace code.gitea.io/actions-proto-go => git.marketally.com/gitcaddy/actions-proto-go v0.5.1 +replace code.gitea.io/actions-proto-go => git.marketally.com/gitcaddy/actions-proto-go v0.5.2 exclude github.com/gofrs/uuid v3.2.0+incompatible diff --git a/go.sum b/go.sum index d2457d6e1e..37ccbe4212 100644 --- a/go.sum +++ b/go.sum @@ -29,8 +29,8 @@ dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= -git.marketally.com/gitcaddy/actions-proto-go v0.5.0 h1:D2loMnqTXiaJL6TMfOOUJz4/3Vpv0AnMDSJVuiqMNrM= -git.marketally.com/gitcaddy/actions-proto-go v0.5.0/go.mod h1:li5RzZsj1sV8a0SXzXWsGNwv0dYw7Wj829AgloZqF5o= +git.marketally.com/gitcaddy/actions-proto-go v0.5.2 h1:+0tDJeyduhxpYrBNScN8w5din/0zJ/KtAh/Eo6mE9QE= +git.marketally.com/gitcaddy/actions-proto-go v0.5.2/go.mod h1:mn7Wkqz6JbnTOHQpot3yDeHx+O5C9EGhMEE+htvHBas= gitea.com/gitea/act v0.261.7-0.20251003180512-ac6e4b751763 h1:ohdxegvslDEllZmRNDqpKun6L4Oq81jNdEDtGgHEV2c= gitea.com/gitea/act v0.261.7-0.20251003180512-ac6e4b751763/go.mod h1:Pg5C9kQY1CEA3QjthjhlrqOC/QOT5NyWNjOjRHw23Ok= gitea.com/gitea/go-xsd-duration v0.0.0-20220703122237-02e73435a078 h1:BAFmdZpRW7zMQZQDClaCWobRj9uL1MR3MzpCVJvc5s4= diff --git a/options/locale/locale_en-US.json b/options/locale/locale_en-US.json index 4547945d7d..e63f66c894 100644 --- a/options/locale/locale_en-US.json +++ b/options/locale/locale_en-US.json @@ -3696,6 +3696,13 @@ "actions.runners.reset_registration_token": "Reset registration token", "actions.runners.reset_registration_token_confirm": "Would you like to invalidate the current token and generate a new one?", "actions.runners.reset_registration_token_success": "Runner registration token reset successfully", + "actions.runners.capabilities": "Capabilities", + "actions.runners.capabilities.os": "OS/Arch", + "actions.runners.capabilities.docker": "Docker", + "actions.runners.capabilities.shells": "Shells", + "actions.runners.capabilities.tools": "Tools", + "actions.runners.capabilities.limitations": "Limitations", + "actions.runners.capabilities.available": "Available", "actions.runs.all_workflows": "All Workflows", "actions.runs.commit": "Commit", "actions.runs.scheduled": "Scheduled", diff --git a/routers/web/shared/actions/runners.go b/routers/web/shared/actions/runners.go index 648f8046a4..4097a99e81 100644 --- a/routers/web/shared/actions/runners.go +++ b/routers/web/shared/actions/runners.go @@ -4,6 +4,7 @@ package actions import ( + "encoding/json" "errors" "net/http" "net/url" @@ -12,6 +13,7 @@ import ( "code.gitea.io/gitea/models/db" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" + "code.gitea.io/gitea/modules/structs" "code.gitea.io/gitea/modules/templates" "code.gitea.io/gitea/modules/util" "code.gitea.io/gitea/modules/web" @@ -199,6 +201,14 @@ func RunnersEdit(ctx *context.Context) { ctx.Data["Runner"] = runner + // Parse runner capabilities if available + if runner.CapabilitiesJSON != "" { + var caps structs.RunnerCapability + if err := json.Unmarshal([]byte(runner.CapabilitiesJSON), &caps); err == nil { + ctx.Data["RunnerCapabilities"] = &caps + } + } + opts := actions_model.FindTaskOptions{ ListOptions: db.ListOptions{ Page: page, diff --git a/templates/shared/actions/runner_edit.tmpl b/templates/shared/actions/runner_edit.tmpl index 8c434971ad..2c396f53a2 100644 --- a/templates/shared/actions/runner_edit.tmpl +++ b/templates/shared/actions/runner_edit.tmpl @@ -28,6 +28,61 @@ + {{if .Runner.CapabilitiesJSON}} +
+
+ +
+ {{if .RunnerCapabilities}} +
+ {{if .RunnerCapabilities.OS}} +
+ {{ctx.Locale.Tr "actions.runners.capabilities.os"}}: + {{.RunnerCapabilities.OS}}/{{.RunnerCapabilities.Arch}} +
+ {{end}} + {{if .RunnerCapabilities.Docker}} +
+ {{ctx.Locale.Tr "actions.runners.capabilities.docker"}}: + {{svg "octicon-check" 14}} {{ctx.Locale.Tr "actions.runners.capabilities.available"}} +
+ {{end}} + {{if .RunnerCapabilities.Shell}} +
+ {{ctx.Locale.Tr "actions.runners.capabilities.shells"}}: + {{range .RunnerCapabilities.Shell}} + {{.}} + {{end}} +
+ {{end}} +
+ {{if .RunnerCapabilities.Tools}} +
+ {{ctx.Locale.Tr "actions.runners.capabilities.tools"}}: +
+ {{range $tool, $versions := .RunnerCapabilities.Tools}} + {{$tool}} {{range $versions}}{{.}} {{end}} + {{end}} +
+
+ {{end}} + {{if .RunnerCapabilities.Limitations}} +
+ {{ctx.Locale.Tr "actions.runners.capabilities.limitations"}}: +
    + {{range .RunnerCapabilities.Limitations}} +
  • {{.}}
  • + {{end}} +
+
+ {{end}} + {{else}} +
{{.Runner.CapabilitiesJSON}}
+ {{end}} +
+
+ {{end}} +