diff --git a/go.mod b/go.mod index 1dff9de8..5d1190be 100644 --- a/go.mod +++ b/go.mod @@ -101,7 +101,7 @@ require ( gopkg.in/warnings.v0 v0.1.2 // indirect ) -replace github.com/actions-oss/act-cli => gitea.com/actions-oss/act-cli v0.4.2-0.20260214162359-933c4a5bd50b +replace github.com/actions-oss/act-cli => gitea.com/actions-oss/act-cli v0.4.2-0.20260220200604-40ee0f3ef6fc replace github.com/go-git/go-git/v5 => github.com/go-git/go-git/v5 v5.16.4 diff --git a/go.sum b/go.sum index 23e4bfe3..9374e20a 100644 --- a/go.sum +++ b/go.sum @@ -8,8 +8,8 @@ cyphar.com/go-pathrs v0.2.1 h1:9nx1vOgwVvX1mNBWDu93+vaceedpbsDqo+XuBGL40b8= cyphar.com/go-pathrs v0.2.1/go.mod h1:y8f1EMG7r+hCuFf/rXsKqMJrJAUoADZGNh5/vZPKcGc= dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= -gitea.com/actions-oss/act-cli v0.4.2-0.20260214162359-933c4a5bd50b h1:5GCZErrYpOEz5qhAPJ9s8NXngGCuWPYWoKwl7PJejfQ= -gitea.com/actions-oss/act-cli v0.4.2-0.20260214162359-933c4a5bd50b/go.mod h1:tl2dPJQRui7za899nfJIhPqP3a8ii+ySEvzL18mjC0U= +gitea.com/actions-oss/act-cli v0.4.2-0.20260220200604-40ee0f3ef6fc h1:KXg17X1FZhnUM4J0bVG3gVS6jQCtkR6U5aV2ch0tJYA= +gitea.com/actions-oss/act-cli v0.4.2-0.20260220200604-40ee0f3ef6fc/go.mod h1:tl2dPJQRui7za899nfJIhPqP3a8ii+ySEvzL18mjC0U= github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= diff --git a/internal/app/run/runner.go b/internal/app/run/runner.go index 8bee14d8..0024b75c 100644 --- a/internal/app/run/runner.go +++ b/internal/app/run/runner.go @@ -5,6 +5,7 @@ package run import ( "context" + "encoding/json" "fmt" "os" "path/filepath" @@ -16,6 +17,7 @@ import ( "github.com/actions-oss/act-cli/pkg/artifactcache" "github.com/actions-oss/act-cli/pkg/model" "github.com/actions-oss/act-cli/pkg/runner" + "github.com/actions-oss/act-cli/pkg/schema" "github.com/docker/docker/api/types/container" "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus" @@ -149,13 +151,13 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report. return err } - plan := &model.Plan{} + // plan := &model.Plan{} // TODO GITEA - // plan, err := model.CombineWorkflowPlanner(workflow).PlanJob(jobID) - // if err != nil { - // return err - // } + plan, err := model.CombineWorkflowPlanner(workflow).PlanJob(jobID) + if err != nil { + return err + } job := workflow.GetJob(jobID) reporter.ResetSteps(len(job.Steps)) @@ -202,16 +204,21 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report. r.envs["ACTIONS_RUNTIME_TOKEN"] = giteaRuntimeToken // TODO GITEA - // eventJSON, err := json.Marshal(preset.Event) - // if err != nil { - // return err - // } + eventJSON, err := json.Marshal(preset.Event) + if err != nil { + return err + } // maxLifetime := 3 * time.Hour // if deadline, ok := ctx.Deadline(); ok { // maxLifetime = time.Until(deadline) // } + actCtx := map[string]interface{}{} + forgeCtx := task.Context.AsMap() + actCtx["github"] = forgeCtx + actCtx["gitea"] = forgeCtx + runnerConfig := &runner.Config{ // On Linux, Workdir will be like "///" // On Windows, Workdir will be like "\\\" @@ -226,12 +233,12 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report. JSONLogger: false, Env: r.envs, Secrets: task.Secrets, - GitHubInstance: strings.TrimSuffix(r.client.Address(), "/"), - AutoRemove: true, - NoSkipCheckout: true, + // GitHubInstance: strings.TrimSuffix(r.client.Address(), "/"), + AutoRemove: true, + NoSkipCheckout: true, // TODO GITEA // PresetGitHubContext: preset, - // EventJSON: string(eventJSON), + EventJSON: string(eventJSON), // ContainerNamePrefix: fmt.Sprintf("GITEA-ACTIONS-TASK-%d", task.Id), // ContainerMaxLifetime: maxLifetime, ContainerNetworkMode: container.NetworkMode(r.cfg.Container.Network), @@ -245,6 +252,17 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report. // TODO GITEA // ValidVolumes: r.cfg.Container.ValidVolumes, // InsecureSkipTLS: r.cfg.Runner.Insecure, + + GitHubServerURL: strings.TrimSuffix(r.client.Address(), "/"), + GitHubAPIServerURL: strings.TrimSuffix(r.client.Address(), "/api/v1"), + // Invalid but ok + GitHubGraphQlAPIServerURL: strings.TrimSuffix(r.client.Address(), "/api/graphql"), + MainContextNames: []string{"gitea", "github"}, + + Action: model.ActionConfig{ + Schema: schema.GetGiteaActionSchema(), + }, + ContextData: actCtx, } rr, err := runner.New(runnerConfig) diff --git a/internal/app/run/workflow.go b/internal/app/run/workflow.go index d92d6ae2..b6f765f3 100644 --- a/internal/app/run/workflow.go +++ b/internal/app/run/workflow.go @@ -12,7 +12,7 @@ import ( runnerv1 "code.gitea.io/actions-proto-go/runner/v1" "github.com/actions-oss/act-cli/pkg/model" "github.com/actions-oss/act-cli/pkg/schema" - "go.yaml.in/yaml/v4" + "gopkg.in/yaml.v3" ) func generateWorkflow(task *runnerv1.Task) (*model.Workflow, string, error) { @@ -52,7 +52,7 @@ func generateWorkflow(task *runnerv1.Task) (*model.Workflow, string, error) { } // TODO GITEA - // workflow.Jobs[jobID].RawNeeds = rawNeeds + workflow.Jobs[jobID].RawNeeds = rawNeeds return workflow, jobID, nil }