diff --git a/cmd/root.go b/cmd/root.go index 3eca040..4cd0ebd 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -19,7 +19,7 @@ import ( gitignore "github.com/sabhiram/go-gitignore" log "github.com/sirupsen/logrus" "github.com/spf13/cobra" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/nektos/act/pkg/artifactcache" "github.com/nektos/act/pkg/artifacts" diff --git a/go.mod b/go.mod index 60f152f..4aee2fc 100644 --- a/go.mod +++ b/go.mod @@ -33,8 +33,8 @@ require ( github.com/stretchr/testify v1.9.0 github.com/timshannon/bolthold v0.0.0-20210913165410-232392fc8a6a go.etcd.io/bbolt v1.3.9 + go.yaml.in/yaml/v4 v4.0.0-rc.2 golang.org/x/term v0.18.0 - gopkg.in/yaml.v3 v3.0.1 gotest.tools/v3 v3.5.1 ) @@ -88,4 +88,5 @@ require ( golang.org/x/tools v0.13.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index bdd044f..6ec93d5 100644 --- a/go.sum +++ b/go.sum @@ -191,6 +191,8 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= +go.yaml.in/yaml/v4 v4.0.0-rc.2 h1:/FrI8D64VSr4HtGIlUtlFMGsm7H7pWTbj6vOLVZcA6s= +go.yaml.in/yaml/v4 v4.0.0-rc.2/go.mod h1:aZqd9kCMsGL7AuUv/m/PvWLdg5sjJsZ4oHDEnfPPfY0= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= diff --git a/pkg/jobparser/evaluator.go b/pkg/jobparser/evaluator.go index 80a1397..2a95008 100644 --- a/pkg/jobparser/evaluator.go +++ b/pkg/jobparser/evaluator.go @@ -6,7 +6,7 @@ import ( "strings" "github.com/nektos/act/pkg/exprparser" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" ) // ExpressionEvaluator is copied from runner.expressionEvaluator, diff --git a/pkg/jobparser/interpeter.go b/pkg/jobparser/interpeter.go index 3d121ad..e565781 100644 --- a/pkg/jobparser/interpeter.go +++ b/pkg/jobparser/interpeter.go @@ -3,7 +3,7 @@ package jobparser import ( "github.com/nektos/act/pkg/exprparser" "github.com/nektos/act/pkg/model" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" ) // NewInterpeter returns an interpeter used in the server, diff --git a/pkg/jobparser/jobparser.go b/pkg/jobparser/jobparser.go index 9092d85..962a26b 100644 --- a/pkg/jobparser/jobparser.go +++ b/pkg/jobparser/jobparser.go @@ -6,7 +6,7 @@ import ( "sort" "strings" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/nektos/act/pkg/exprparser" "github.com/nektos/act/pkg/model" diff --git a/pkg/jobparser/jobparser_test.go b/pkg/jobparser/jobparser_test.go index e510500..ed91876 100644 --- a/pkg/jobparser/jobparser_test.go +++ b/pkg/jobparser/jobparser_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/require" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" ) func TestParse(t *testing.T) { diff --git a/pkg/jobparser/model.go b/pkg/jobparser/model.go index ae71698..c9ff0c3 100644 --- a/pkg/jobparser/model.go +++ b/pkg/jobparser/model.go @@ -5,7 +5,7 @@ import ( "fmt" "github.com/nektos/act/pkg/model" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" ) // SingleWorkflow is a workflow with single job and single matrix @@ -50,18 +50,17 @@ func (w *SingleWorkflow) SetJob(id string, job *Job) error { m := map[string]*Job{ id: job, } - var buf bytes.Buffer - encoder := yaml.NewEncoder(&buf) - encoder.SetIndent(2) - encoder.Encode(m) - encoder.Close() + buf, err := yaml.Marshal(m) + if err != nil { + return err + } node := yaml.Node{} - if err := yaml.Unmarshal(buf.Bytes(), &node); err != nil { + if err := yaml.Unmarshal(buf, &node); err != nil { return err } if len(node.Content) != 1 || node.Content[0].Kind != yaml.MappingNode { - return fmt.Errorf("can not set job: %s", buf.String()) + return fmt.Errorf("can not set job: %s", string(buf)) } w.RawJobs = *node.Content[0] return nil diff --git a/pkg/jobparser/model_test.go b/pkg/jobparser/model_test.go index 079c32d..833756b 100644 --- a/pkg/jobparser/model_test.go +++ b/pkg/jobparser/model_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" ) func TestParseRawOn(t *testing.T) { diff --git a/pkg/model/action.go b/pkg/model/action.go index 6031cec..316d9d7 100644 --- a/pkg/model/action.go +++ b/pkg/model/action.go @@ -5,7 +5,7 @@ import ( "io" "strings" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" ) // ActionRunsUsing is the type of runner for the action diff --git a/pkg/model/workflow.go b/pkg/model/workflow.go index f93623f..7d5ca25 100644 --- a/pkg/model/workflow.go +++ b/pkg/model/workflow.go @@ -10,7 +10,7 @@ import ( "strings" log "github.com/sirupsen/logrus" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/nektos/act/pkg/common" ) diff --git a/pkg/runner/expression.go b/pkg/runner/expression.go index 2e3152b..894ebbf 100644 --- a/pkg/runner/expression.go +++ b/pkg/runner/expression.go @@ -16,7 +16,7 @@ import ( "github.com/nektos/act/pkg/container" "github.com/nektos/act/pkg/exprparser" "github.com/nektos/act/pkg/model" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" ) // ExpressionEvaluator is the interface for evaluating expressions diff --git a/pkg/runner/expression_test.go b/pkg/runner/expression_test.go index 5cc2f7b..0bc0bf0 100644 --- a/pkg/runner/expression_test.go +++ b/pkg/runner/expression_test.go @@ -11,7 +11,7 @@ import ( "github.com/nektos/act/pkg/exprparser" "github.com/nektos/act/pkg/model" assert "github.com/stretchr/testify/assert" - yaml "gopkg.in/yaml.v3" + yaml "go.yaml.in/yaml/v4" ) func createRunContext(t *testing.T) *RunContext { diff --git a/pkg/runner/run_context_test.go b/pkg/runner/run_context_test.go index af0cd4e..7a7ffba 100644 --- a/pkg/runner/run_context_test.go +++ b/pkg/runner/run_context_test.go @@ -15,7 +15,7 @@ import ( log "github.com/sirupsen/logrus" assert "github.com/stretchr/testify/assert" - yaml "gopkg.in/yaml.v3" + yaml "go.yaml.in/yaml/v4" ) func TestRunContext_EvalBool(t *testing.T) { diff --git a/pkg/runner/runner_test.go b/pkg/runner/runner_test.go index 2005932..a73ab5f 100644 --- a/pkg/runner/runner_test.go +++ b/pkg/runner/runner_test.go @@ -15,7 +15,7 @@ import ( "github.com/joho/godotenv" log "github.com/sirupsen/logrus" assert "github.com/stretchr/testify/assert" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/nektos/act/pkg/common" "github.com/nektos/act/pkg/model" diff --git a/pkg/runner/step_action_local_test.go b/pkg/runner/step_action_local_test.go index c4b6345..8a80a1c 100644 --- a/pkg/runner/step_action_local_test.go +++ b/pkg/runner/step_action_local_test.go @@ -12,7 +12,7 @@ import ( "github.com/nektos/act/pkg/model" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" ) type stepActionLocalMocks struct { diff --git a/pkg/runner/step_action_remote_test.go b/pkg/runner/step_action_remote_test.go index 9dcc338..1c3a37b 100644 --- a/pkg/runner/step_action_remote_test.go +++ b/pkg/runner/step_action_remote_test.go @@ -10,7 +10,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" - "gopkg.in/yaml.v3" + "go.yaml.in/yaml/v4" "github.com/nektos/act/pkg/common" "github.com/nektos/act/pkg/common/git" diff --git a/pkg/runner/step_test.go b/pkg/runner/step_test.go index cdb870e..e288252 100644 --- a/pkg/runner/step_test.go +++ b/pkg/runner/step_test.go @@ -9,7 +9,7 @@ import ( log "github.com/sirupsen/logrus" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" - yaml "gopkg.in/yaml.v3" + yaml "go.yaml.in/yaml/v4" ) func TestMergeIntoMap(t *testing.T) {