mirror of
https://gitea.com/gitea/act_runner.git
synced 2026-03-25 00:05:03 +01:00
experiment
This commit is contained in:
@@ -151,15 +151,20 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report.
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// plan := &model.Plan{}
|
|
||||||
|
|
||||||
// TODO GITEA
|
// TODO GITEA
|
||||||
plan, err := model.CombineWorkflowPlanner(workflow).PlanJob(jobID)
|
plan, err := model.CombineWorkflowPlanner(workflow).PlanJob(jobID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
job := workflow.GetJob(jobID)
|
job := workflow.GetJob(jobID)
|
||||||
reporter.ResetSteps(len(job.Steps))
|
var stepIds []string
|
||||||
|
for i, v := range job.Steps {
|
||||||
|
if v.ID == "" {
|
||||||
|
v.ID = fmt.Sprint(i)
|
||||||
|
}
|
||||||
|
stepIds = append(stepIds, v.ID)
|
||||||
|
}
|
||||||
|
reporter.SetStepIdMapping(stepIds...)
|
||||||
|
|
||||||
taskContext := task.Context.Fields
|
taskContext := task.Context.Fields
|
||||||
|
|
||||||
@@ -245,6 +250,10 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report.
|
|||||||
ContainerOptions: r.cfg.Container.Options,
|
ContainerOptions: r.cfg.Container.Options,
|
||||||
ContainerDaemonSocket: r.cfg.Container.DockerHost,
|
ContainerDaemonSocket: r.cfg.Container.DockerHost,
|
||||||
Privileged: r.cfg.Container.Privileged,
|
Privileged: r.cfg.Container.Privileged,
|
||||||
|
|
||||||
|
Platforms: map[string]string{
|
||||||
|
"dummy": "-self-hosted",
|
||||||
|
},
|
||||||
// TODO GITEA
|
// TODO GITEA
|
||||||
// DefaultActionInstance: r.getDefaultActionsURL(ctx, task),
|
// DefaultActionInstance: r.getDefaultActionsURL(ctx, task),
|
||||||
// PlatformPicker: r.labels.PickPlatform,
|
// PlatformPicker: r.labels.PickPlatform,
|
||||||
@@ -278,9 +287,9 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report.
|
|||||||
// ctx = common.WithLoggerHook(ctx, reporter)
|
// ctx = common.WithLoggerHook(ctx, reporter)
|
||||||
ctx = runner.WithJobLoggerFactory(ctx, &JobLoggerFactory{reporter: reporter})
|
ctx = runner.WithJobLoggerFactory(ctx, &JobLoggerFactory{reporter: reporter})
|
||||||
|
|
||||||
if !log.IsLevelEnabled(log.DebugLevel) {
|
// if !log.IsLevelEnabled(log.DebugLevel) {
|
||||||
ctx = runner.WithJobLoggerFactory(ctx, NullLogger{})
|
// ctx = runner.WithJobLoggerFactory(ctx, NullLogger{})
|
||||||
}
|
// }
|
||||||
|
|
||||||
execErr := executor(ctx)
|
execErr := executor(ctx)
|
||||||
reporter.SetOutputs(job.Outputs)
|
reporter.SetOutputs(job.Outputs)
|
||||||
|
|||||||
@@ -17,7 +17,16 @@ import (
|
|||||||
|
|
||||||
func generateWorkflow(task *runnerv1.Task) (*model.Workflow, string, error) {
|
func generateWorkflow(task *runnerv1.Task) (*model.Workflow, string, error) {
|
||||||
workflow, err := model.ReadWorkflow(bytes.NewReader(task.WorkflowPayload), model.WorkflowConfig{
|
workflow, err := model.ReadWorkflow(bytes.NewReader(task.WorkflowPayload), model.WorkflowConfig{
|
||||||
Schema: schema.GetGiteaWorkflowSchema(),
|
// Schema: schema.GetGiteaWorkflowSchema(),
|
||||||
|
// Allow everything
|
||||||
|
Schema: &schema.Schema{
|
||||||
|
Definitions: map[string]schema.Definition{
|
||||||
|
"workflow-root": {
|
||||||
|
Context: []string{"github", "gitea", "env", "job", "matrix", "inputs", "vars"},
|
||||||
|
OneOf: &[]string{"any"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, "", err
|
return nil, "", err
|
||||||
@@ -53,6 +62,7 @@ func generateWorkflow(task *runnerv1.Task) (*model.Workflow, string, error) {
|
|||||||
|
|
||||||
// TODO GITEA
|
// TODO GITEA
|
||||||
workflow.Jobs[jobID].RawNeeds = rawNeeds
|
workflow.Jobs[jobID].RawNeeds = rawNeeds
|
||||||
|
workflow.Jobs[jobID].RawRunsOn.Encode("dummy")
|
||||||
|
|
||||||
return workflow, jobID, nil
|
return workflow, jobID, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"slices"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
@@ -40,6 +41,8 @@ type Reporter struct {
|
|||||||
|
|
||||||
debugOutputEnabled bool
|
debugOutputEnabled bool
|
||||||
stopCommandEndToken string
|
stopCommandEndToken string
|
||||||
|
|
||||||
|
stepIds []string
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewReporter(ctx context.Context, cancel context.CancelFunc, client client.Client, task *runnerv1.Task) *Reporter {
|
func NewReporter(ctx context.Context, cancel context.CancelFunc, client client.Client, task *runnerv1.Task) *Reporter {
|
||||||
@@ -82,6 +85,13 @@ func (r *Reporter) ResetSteps(l int) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *Reporter) SetStepIdMapping(stepIDs ...string) {
|
||||||
|
r.ResetSteps(len(stepIDs))
|
||||||
|
r.stateMu.Lock()
|
||||||
|
defer r.stateMu.Unlock()
|
||||||
|
r.stepIds = stepIDs
|
||||||
|
}
|
||||||
|
|
||||||
func (r *Reporter) Levels() []log.Level {
|
func (r *Reporter) Levels() []log.Level {
|
||||||
return log.AllLevels
|
return log.AllLevels
|
||||||
}
|
}
|
||||||
@@ -132,6 +142,12 @@ func (r *Reporter) Fire(entry *log.Entry) error {
|
|||||||
if v, ok := v.(int); ok && len(r.state.Steps) > v {
|
if v, ok := v.(int); ok && len(r.state.Steps) > v {
|
||||||
step = r.state.Steps[v]
|
step = r.state.Steps[v]
|
||||||
}
|
}
|
||||||
|
} else if v, ok := entry.Data["stepID"]; ok {
|
||||||
|
if v, ok := v.([]string); ok && len(v) >= 1 {
|
||||||
|
if no := slices.Index(r.stepIds, v[0]); no >= 0 && len(r.state.Steps) > no {
|
||||||
|
step = r.state.Steps[no]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if step == nil {
|
if step == nil {
|
||||||
if !r.duringSteps() {
|
if !r.duringSteps() {
|
||||||
|
|||||||
Reference in New Issue
Block a user