chore(runtime): fetch build data

Signed-off-by: Bo-Yi.Wu <appleboy.tw@gmail.com>
This commit is contained in:
Bo-Yi.Wu
2022-09-03 20:57:32 +08:00
committed by Jason Song
parent 631f801aa6
commit d3d56ed0ef
9 changed files with 77 additions and 78 deletions

View File

@ -25,29 +25,12 @@ type Client interface {
// Request requests the next available build stage for execution.
Request(ctx context.Context, args *runnerv1.RequestRequest) (*runnerv1.Stage, error)
// Detail fetches build details
Detail(ctx context.Context, args *runnerv1.DetailRequest) (*runnerv1.DetailResponse, error)
// Update updates the build stage.
Update(ctxt context.Context, args *runnerv1.UpdateRequest) error
// UpdateStep updates the build step.
UpdateStep(ctx context.Context, args *runnerv1.UpdateStepRequest) error
}
type contextKey string
const clientContextKey = contextKey("gitea.rpc.client")
// FromContext returns the client from the context.
func FromContext(ctx context.Context) Client {
val := ctx.Value(clientContextKey)
if val != nil {
if c, ok := val.(Client); ok {
return c
}
}
return nil
}
// WithClient returns a new context with the given client.
func WithClient(ctx context.Context, c Client) context.Context {
return context.WithValue(ctx, clientContextKey, c)
}

View File

@ -153,3 +153,22 @@ func (p *HTTPClient) UpdateStep(ctx context.Context, arg *runnerv1.UpdateStepReq
return err
}
// Detail fetches build details
func (p *HTTPClient) Detail(ctx context.Context, arg *runnerv1.DetailRequest) (*runnerv1.DetailResponse, error) {
client := runnerv1connect.NewRunnerServiceClient(
p.Client,
p.Endpoint,
p.opts...,
)
req := connect.NewRequest(arg)
req.Header().Set("X-Runner-Token", p.Secret)
resp, err := client.Detail(ctx, req)
return &runnerv1.DetailResponse{
Repo: resp.Msg.Repo,
Build: resp.Msg.Build,
Stage: resp.Msg.Stage,
}, err
}