@@ -21,8 +21,11 @@ import (
2121)
2222
2323const (
24- uuidHeaderKey = "x-runner-uuid"
25- tokenHeaderKey = "x-runner-token"
24+ uuidHeaderKey = "x-runner-uuid"
25+ tokenHeaderKey = "x-runner-token"
26+ versionHeaderKey = "x-runner-version"
27+
28+ versionUnknown = "Unknown"
2629)
2730
2831var withRunner = connect .WithInterceptors (connect .UnaryInterceptorFunc (func (unaryFunc connect.UnaryFunc ) connect.UnaryFunc {
@@ -33,6 +36,12 @@ var withRunner = connect.WithInterceptors(connect.UnaryInterceptorFunc(func(unar
3336 }
3437 uuid := request .Header ().Get (uuidHeaderKey )
3538 token := request .Header ().Get (tokenHeaderKey )
39+ version := request .Header ().Get (versionHeaderKey )
40+ if util .IsEmptyString (version ) {
41+ version = versionUnknown
42+ }
43+ version , _ = util .SplitStringAtByteN (version , 64 )
44+
3645 runner , err := actions_model .GetRunnerByUUID (ctx , uuid )
3746 if err != nil {
3847 if errors .Is (err , util .ErrNotExist ) {
@@ -45,6 +54,10 @@ var withRunner = connect.WithInterceptors(connect.UnaryInterceptorFunc(func(unar
4554 }
4655
4756 cols := []string {"last_online" }
57+ if runner .Version != version {
58+ runner .Version = version
59+ cols = append (cols , "version" )
60+ }
4861 runner .LastOnline = timeutil .TimeStampNow ()
4962 if methodName == "UpdateTask" || methodName == "UpdateLog" {
5063 runner .LastActive = timeutil .TimeStampNow ()
0 commit comments