mirror of
https://github.com/dolthub/dolt.git
synced 2026-05-20 03:00:43 -05:00
/go/{cmd,libraries}: got export working i think
This commit is contained in:
@@ -20,6 +20,7 @@ import (
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/fatih/color"
|
||||
|
||||
@@ -76,7 +77,7 @@ func (cmd ExportCmd) ArgParser() *argparser.ArgParser {
|
||||
// Exec implements cli.Command.
|
||||
func (cmd ExportCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv, cliCtx cli.CliContext) int {
|
||||
ap := cmd.ArgParser()
|
||||
help, usage := cli.HelpAndUsagePrinters(cli.CommandDocsForCommandString(commandStr, importDocs, ap))
|
||||
help, usage := cli.HelpAndUsagePrinters(cli.CommandDocsForCommandString(commandStr, exportDocs, ap))
|
||||
apr := cli.ParseArgsOrDie(ap, args, help)
|
||||
if !cli.CheckEnvIsValid(dEnv) {
|
||||
return 1
|
||||
@@ -134,12 +135,13 @@ func (cmd ExportCmd) Exec(ctx context.Context, commandStr string, args []string,
|
||||
return commands.HandleVErrAndExitCode(errhand.VerboseErrorFromError(err), usage)
|
||||
}
|
||||
|
||||
cli.Println(color.CyanString(fmt.Sprintf("Dolt CI Workflow '%s' exported to %s.", config.Name, outpath)))
|
||||
cli.Println(color.CyanString(fmt.Sprintf("Dolt CI Workflow '%s' exported to %s.", config.Name.Value, outpath)))
|
||||
return 0
|
||||
}
|
||||
|
||||
func writeWorkflowConfig(config *dolt_ci.WorkflowConfig, dir string) (outpath string, err error) {
|
||||
outpath = filepath.Join(dir, config.Name)
|
||||
filename := strings.Replace(config.Name.Value, " ", "_", -1)
|
||||
outpath = filepath.Join(dir, fmt.Sprintf("%s.yaml", filename))
|
||||
var f *os.File
|
||||
f, err = os.Create(outpath)
|
||||
if err != nil {
|
||||
|
||||
+22
-22
@@ -24,24 +24,24 @@ import (
|
||||
)
|
||||
|
||||
type Step struct {
|
||||
Name string `yaml:"name"`
|
||||
SavedQueryName string `yaml:"saved_query_name"`
|
||||
ExpectedColumns string `yaml:"expected_columns"`
|
||||
ExpectedRows string `yaml:"expected_rows"`
|
||||
Name yaml.Node `yaml:"name"`
|
||||
SavedQueryName yaml.Node `yaml:"saved_query_name"`
|
||||
ExpectedColumns yaml.Node `yaml:"expected_columns"`
|
||||
ExpectedRows yaml.Node `yaml:"expected_rows"`
|
||||
}
|
||||
|
||||
type Job struct {
|
||||
Name string `yaml:"name"`
|
||||
Steps []Step `yaml:"steps"`
|
||||
Name yaml.Node `yaml:"name"`
|
||||
Steps []Step `yaml:"steps"`
|
||||
}
|
||||
|
||||
type Push struct {
|
||||
Branches []string `yaml:"branches"`
|
||||
Branches []yaml.Node `yaml:"branches"`
|
||||
}
|
||||
|
||||
type PullRequest struct {
|
||||
Branches []string `yaml:"branches"`
|
||||
Activities []string `yaml:"activities"`
|
||||
Branches []yaml.Node `yaml:"branches"`
|
||||
Activities []yaml.Node `yaml:"activities"`
|
||||
}
|
||||
|
||||
type WorkflowDispatch struct{}
|
||||
@@ -53,9 +53,9 @@ type On struct {
|
||||
}
|
||||
|
||||
type WorkflowConfig struct {
|
||||
Name string `yaml:"name"`
|
||||
On On `yaml:"on"`
|
||||
Jobs []Job `yaml:"jobs"`
|
||||
Name yaml.Node `yaml:"name"`
|
||||
On On `yaml:"on"`
|
||||
Jobs []Job `yaml:"jobs"`
|
||||
}
|
||||
|
||||
func ParseWorkflowConfig(r io.Reader) (workflow *WorkflowConfig, err error) {
|
||||
@@ -95,11 +95,11 @@ func ValidateWorkflowConfig(workflow *WorkflowConfig) error {
|
||||
|
||||
branches := make(map[string]bool)
|
||||
for _, branch := range workflow.On.Push.Branches {
|
||||
_, ok := branches[branch]
|
||||
_, ok := branches[branch.Value]
|
||||
if ok {
|
||||
return fmt.Errorf("invalid config: on push branch duplicated: %s", branch)
|
||||
} else {
|
||||
branches[branch] = true
|
||||
branches[branch.Value] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -107,21 +107,21 @@ func ValidateWorkflowConfig(workflow *WorkflowConfig) error {
|
||||
if workflow.On.PullRequest != nil {
|
||||
branches := make(map[string]bool)
|
||||
for _, branch := range workflow.On.PullRequest.Branches {
|
||||
_, ok := branches[branch]
|
||||
_, ok := branches[branch.Value]
|
||||
if ok {
|
||||
return fmt.Errorf("invalid config: on pull request branch duplicated: %s", branch)
|
||||
} else {
|
||||
branches[branch] = true
|
||||
branches[branch.Value] = true
|
||||
}
|
||||
}
|
||||
|
||||
activities := make(map[string]bool)
|
||||
for _, activity := range workflow.On.PullRequest.Activities {
|
||||
_, ok := activities[activity]
|
||||
_, ok := activities[activity.Value]
|
||||
if ok {
|
||||
return fmt.Errorf("invalid config: on pull request activities duplicated: %s", activity)
|
||||
} else {
|
||||
activities[activity] = true
|
||||
activities[activity.Value] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -138,19 +138,19 @@ func ValidateWorkflowConfig(workflow *WorkflowConfig) error {
|
||||
return fmt.Errorf("invalid config: no steps defined for job: %s", job.Name)
|
||||
}
|
||||
|
||||
_, ok := jobs[job.Name]
|
||||
_, ok := jobs[job.Name.Value]
|
||||
if ok {
|
||||
return fmt.Errorf("invalid config: job duplicated: %s", job.Name)
|
||||
} else {
|
||||
jobs[job.Name] = true
|
||||
jobs[job.Name.Value] = true
|
||||
}
|
||||
|
||||
for _, step := range job.Steps {
|
||||
_, ok := steps[step.Name]
|
||||
_, ok := steps[step.Name.Value]
|
||||
if ok {
|
||||
return fmt.Errorf("invalid config: step duplicated: %s", step.Name)
|
||||
} else {
|
||||
steps[step.Name] = true
|
||||
steps[step.Name.Value] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+72
-63
@@ -24,6 +24,7 @@ import (
|
||||
|
||||
"github.com/dolthub/go-mysql-server/sql"
|
||||
"github.com/google/uuid"
|
||||
"gopkg.in/yaml.v3"
|
||||
|
||||
"github.com/dolthub/dolt/go/libraries/doltcore/branch_control"
|
||||
"github.com/dolthub/dolt/go/libraries/doltcore/doltdb"
|
||||
@@ -915,21 +916,21 @@ func (d *doltWorkflowManager) getWorkflow(ctx *sql.Context, workflowName string)
|
||||
func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *WorkflowConfig) error {
|
||||
// delete where there is no On field definition
|
||||
if config.On.Push == nil {
|
||||
err := d.deletePushWorkflowEvents(ctx, WorkflowName(config.Name))
|
||||
err := d.deletePushWorkflowEvents(ctx, WorkflowName(config.Name.Value))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if config.On.PullRequest == nil {
|
||||
err := d.deletePullRequestWorkflowEvents(ctx, WorkflowName(config.Name))
|
||||
err := d.deletePullRequestWorkflowEvents(ctx, WorkflowName(config.Name.Value))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if config.On.WorkflowDispatch == nil {
|
||||
err := d.deleteWorkflowDispatchWorkflowEvents(ctx, WorkflowName(config.Name))
|
||||
err := d.deleteWorkflowDispatchWorkflowEvents(ctx, WorkflowName(config.Name.Value))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -938,13 +939,13 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
// handle on push
|
||||
if config.On.Push != nil {
|
||||
if len(config.On.Push.Branches) == 0 {
|
||||
events, err := d.listWorkflowEventsByWorkflowNameWhereEventTypeIsPush(ctx, WorkflowName(config.Name))
|
||||
events, err := d.listWorkflowEventsByWorkflowNameWhereEventTypeIsPush(ctx, WorkflowName(config.Name.Value))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if len(events) == 0 {
|
||||
_, err = d.writeWorkflowEventRow(ctx, WorkflowName(config.Name), WorkflowEventTypePush)
|
||||
_, err = d.writeWorkflowEventRow(ctx, WorkflowName(config.Name.Value), WorkflowEventTypePush)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -966,10 +967,10 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
} else {
|
||||
configBranches := make(map[string]string)
|
||||
for _, branch := range config.On.Push.Branches {
|
||||
configBranches[branch] = branch
|
||||
configBranches[branch.Value] = branch.Value
|
||||
}
|
||||
|
||||
pushEvents, err := d.listWorkflowEventsByWorkflowNameWhereEventTypeIsPush(ctx, WorkflowName(config.Name))
|
||||
pushEvents, err := d.listWorkflowEventsByWorkflowNameWhereEventTypeIsPush(ctx, WorkflowName(config.Name.Value))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1024,7 +1025,7 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
|
||||
// handle case where there's no defined push event
|
||||
if len(pushEvents) == 0 {
|
||||
eventID, err := d.writeWorkflowEventRow(ctx, WorkflowName(config.Name), WorkflowEventTypePush)
|
||||
eventID, err := d.writeWorkflowEventRow(ctx, WorkflowName(config.Name.Value), WorkflowEventTypePush)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1045,7 +1046,7 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
|
||||
if config.On.PullRequest != nil {
|
||||
if len(config.On.PullRequest.Branches) == 0 {
|
||||
events, err := d.listWorkflowEventsByWorkflowNameWhereEventTypeIsPullRequest(ctx, WorkflowName(config.Name))
|
||||
events, err := d.listWorkflowEventsByWorkflowNameWhereEventTypeIsPullRequest(ctx, WorkflowName(config.Name.Value))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1066,10 +1067,10 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
} else {
|
||||
configBranches := make(map[string]string)
|
||||
for _, branch := range config.On.PullRequest.Branches {
|
||||
configBranches[branch] = branch
|
||||
configBranches[branch.Value] = branch.Value
|
||||
}
|
||||
|
||||
prEvents, err := d.listWorkflowEventsByWorkflowNameWhereEventTypeIsPullRequest(ctx, WorkflowName(config.Name))
|
||||
prEvents, err := d.listWorkflowEventsByWorkflowNameWhereEventTypeIsPullRequest(ctx, WorkflowName(config.Name.Value))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1124,7 +1125,7 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
|
||||
// handle case where there's no defined pull request event
|
||||
if len(prEvents) == 0 {
|
||||
eventID, err := d.writeWorkflowEventRow(ctx, WorkflowName(config.Name), WorkflowEventTypePullRequest)
|
||||
eventID, err := d.writeWorkflowEventRow(ctx, WorkflowName(config.Name.Value), WorkflowEventTypePullRequest)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1143,7 +1144,7 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
}
|
||||
|
||||
if len(config.On.PullRequest.Activities) == 0 {
|
||||
events, err := d.listWorkflowEventsByWorkflowNameWhereEventTypeIsPullRequest(ctx, WorkflowName(config.Name))
|
||||
events, err := d.listWorkflowEventsByWorkflowNameWhereEventTypeIsPullRequest(ctx, WorkflowName(config.Name.Value))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1164,10 +1165,10 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
} else {
|
||||
configActivities := make(map[string]string)
|
||||
for _, activity := range config.On.PullRequest.Activities {
|
||||
configActivities[activity] = activity
|
||||
configActivities[activity.Value] = activity.Value
|
||||
}
|
||||
|
||||
prEvents, err := d.listWorkflowEventsByWorkflowNameWhereEventTypeIsPullRequest(ctx, WorkflowName(config.Name))
|
||||
prEvents, err := d.listWorkflowEventsByWorkflowNameWhereEventTypeIsPullRequest(ctx, WorkflowName(config.Name.Value))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1222,7 +1223,7 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
|
||||
// handle case where there's no defined pull request event
|
||||
if len(prEvents) == 0 {
|
||||
eventID, err := d.writeWorkflowEventRow(ctx, WorkflowName(config.Name), WorkflowEventTypePullRequest)
|
||||
eventID, err := d.writeWorkflowEventRow(ctx, WorkflowName(config.Name.Value), WorkflowEventTypePullRequest)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1241,7 +1242,7 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
}
|
||||
|
||||
if len(config.On.PullRequest.Branches) == 0 && len(config.On.PullRequest.Activities) == 0 {
|
||||
_, err := d.writeWorkflowEventRow(ctx, WorkflowName(config.Name), WorkflowEventTypePullRequest)
|
||||
_, err := d.writeWorkflowEventRow(ctx, WorkflowName(config.Name.Value), WorkflowEventTypePullRequest)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1249,7 +1250,7 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
}
|
||||
|
||||
if config.On.WorkflowDispatch != nil {
|
||||
_, err := d.writeWorkflowEventRow(ctx, WorkflowName(config.Name), WorkflowEventTypeWorkflowDispatch)
|
||||
_, err := d.writeWorkflowEventRow(ctx, WorkflowName(config.Name.Value), WorkflowEventTypeWorkflowDispatch)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1257,10 +1258,10 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
|
||||
configJobs := make(map[string]Job)
|
||||
for _, job := range config.Jobs {
|
||||
configJobs[job.Name] = job
|
||||
configJobs[job.Name.Value] = job
|
||||
}
|
||||
|
||||
jobs, err := d.listWorkflowJobsByWorkflowName(ctx, WorkflowName(config.Name))
|
||||
jobs, err := d.listWorkflowJobsByWorkflowName(ctx, WorkflowName(config.Name.Value))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1277,10 +1278,10 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
orderedSteps := make(map[string]int)
|
||||
|
||||
for _, configJob := range config.Jobs {
|
||||
if configJob.Name == job.Name {
|
||||
if configJob.Name.Value == job.Name {
|
||||
for idx, step := range configJob.Steps {
|
||||
orderedSteps[step.Name] = idx
|
||||
configSteps[step.Name] = step
|
||||
orderedSteps[step.Name.Value] = idx
|
||||
configSteps[step.Name.Value] = step
|
||||
}
|
||||
break
|
||||
}
|
||||
@@ -1312,13 +1313,13 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
}
|
||||
}
|
||||
|
||||
if configStep.SavedQueryName != "" {
|
||||
newExpectedColumnComparisonType, newExpectedColumnCount, err := d.parseSavedQueryExpectedResultString(configStep.ExpectedColumns)
|
||||
if configStep.SavedQueryName.Value != "" {
|
||||
newExpectedColumnComparisonType, newExpectedColumnCount, err := d.parseSavedQueryExpectedResultString(configStep.ExpectedColumns.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
newExpectedRowComparisonType, newExpectedRowCount, err := d.parseSavedQueryExpectedResultString(configStep.ExpectedRows)
|
||||
newExpectedRowComparisonType, newExpectedRowCount, err := d.parseSavedQueryExpectedResultString(configStep.ExpectedRows.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1329,8 +1330,8 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
}
|
||||
|
||||
if savedQueryStep.SavedQueryExpectedResultsType == WorkflowSavedQueryExpectedResultsTypeRowColumnCount {
|
||||
if configStep.SavedQueryName != savedQueryStep.SavedQueryName {
|
||||
err = d.updateWorkflowSavedQueryStepRow(ctx, *savedQueryStep.Id, configStep.SavedQueryName)
|
||||
if configStep.SavedQueryName.Value != savedQueryStep.SavedQueryName {
|
||||
err = d.updateWorkflowSavedQueryStepRow(ctx, *savedQueryStep.Id, configStep.SavedQueryName.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1360,28 +1361,28 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
}
|
||||
|
||||
for _, step := range configSteps {
|
||||
orderIdx, ok := orderedSteps[step.Name]
|
||||
orderIdx, ok := orderedSteps[step.Name.Value]
|
||||
if !ok {
|
||||
return errors.New("failed to get step order")
|
||||
}
|
||||
|
||||
stepOrder := orderIdx + 1
|
||||
stepID, err := d.writeWorkflowStepRow(ctx, *job.Id, step.Name, stepOrder, WorkflowStepTypeSavedQuery)
|
||||
stepID, err := d.writeWorkflowStepRow(ctx, *job.Id, step.Name.Value, stepOrder, WorkflowStepTypeSavedQuery)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
savedQueryStepID, err := d.writeWorkflowSavedQueryStepRow(ctx, stepID, step.SavedQueryName, WorkflowSavedQueryExpectedResultsTypeRowColumnCount)
|
||||
savedQueryStepID, err := d.writeWorkflowSavedQueryStepRow(ctx, stepID, step.SavedQueryName.Value, WorkflowSavedQueryExpectedResultsTypeRowColumnCount)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
expectedColumnComparisonType, expectedColumnCount, err := d.parseSavedQueryExpectedResultString(step.ExpectedColumns)
|
||||
expectedColumnComparisonType, expectedColumnCount, err := d.parseSavedQueryExpectedResultString(step.ExpectedColumns.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
expectedRowComparisonType, expectedRowCount, err := d.parseSavedQueryExpectedResultString(step.ExpectedRows)
|
||||
expectedRowComparisonType, expectedRowCount, err := d.parseSavedQueryExpectedResultString(step.ExpectedRows.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1391,8 +1392,8 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
return err
|
||||
}
|
||||
|
||||
delete(configSteps, step.Name)
|
||||
delete(orderedSteps, step.Name)
|
||||
delete(configSteps, step.Name.Value)
|
||||
delete(orderedSteps, step.Name.Value)
|
||||
}
|
||||
|
||||
delete(configJobs, job.Name)
|
||||
@@ -1401,27 +1402,27 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
|
||||
// create all jobs that do not yet exist
|
||||
for _, job := range configJobs {
|
||||
jobID, err := d.writeWorkflowJobRow(ctx, WorkflowName(config.Name), job.Name)
|
||||
jobID, err := d.writeWorkflowJobRow(ctx, WorkflowName(config.Name.Value), job.Name.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for idx, step := range job.Steps {
|
||||
stepID, err := d.writeWorkflowStepRow(ctx, jobID, step.Name, idx+1, WorkflowStepTypeSavedQuery)
|
||||
stepID, err := d.writeWorkflowStepRow(ctx, jobID, step.Name.Value, idx+1, WorkflowStepTypeSavedQuery)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
savedQueryStepID, err := d.writeWorkflowSavedQueryStepRow(ctx, stepID, step.SavedQueryName, WorkflowSavedQueryExpectedResultsTypeRowColumnCount)
|
||||
savedQueryStepID, err := d.writeWorkflowSavedQueryStepRow(ctx, stepID, step.SavedQueryName.Value, WorkflowSavedQueryExpectedResultsTypeRowColumnCount)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
expectedColumnComparisonType, expectedColumnCount, err := d.parseSavedQueryExpectedResultString(step.ExpectedColumns)
|
||||
expectedColumnComparisonType, expectedColumnCount, err := d.parseSavedQueryExpectedResultString(step.ExpectedColumns.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
expectedRowComparisonType, expectedRowCount, err := d.parseSavedQueryExpectedResultString(step.ExpectedRows)
|
||||
expectedRowComparisonType, expectedRowCount, err := d.parseSavedQueryExpectedResultString(step.ExpectedRows.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1432,7 +1433,7 @@ func (d *doltWorkflowManager) updateExistingWorkflow(ctx *sql.Context, config *W
|
||||
}
|
||||
}
|
||||
|
||||
delete(configJobs, job.Name)
|
||||
delete(configJobs, job.Name.Value)
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -1630,7 +1631,7 @@ func (d *doltWorkflowManager) toSavedQueryExpectedResultString(comparisonType Wo
|
||||
}
|
||||
|
||||
func (d *doltWorkflowManager) createWorkflow(ctx *sql.Context, config *WorkflowConfig) error {
|
||||
workflowName, err := d.writeWorkflowRow(ctx, WorkflowName(config.Name))
|
||||
workflowName, err := d.writeWorkflowRow(ctx, WorkflowName(config.Name.Value))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1713,7 +1714,7 @@ func (d *doltWorkflowManager) createWorkflow(ctx *sql.Context, config *WorkflowC
|
||||
// handle pushes
|
||||
if pushBranchesTriggerEventID != "" {
|
||||
for _, branch := range config.On.Push.Branches {
|
||||
_, err = d.writeWorkflowEventTriggerBranchesRow(ctx, pushBranchesTriggerEventID, branch)
|
||||
_, err = d.writeWorkflowEventTriggerBranchesRow(ctx, pushBranchesTriggerEventID, branch.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1723,7 +1724,7 @@ func (d *doltWorkflowManager) createWorkflow(ctx *sql.Context, config *WorkflowC
|
||||
// handle pull requests
|
||||
if pullRequestBranchesTriggerEventID != "" {
|
||||
for _, branch := range config.On.PullRequest.Branches {
|
||||
_, err = d.writeWorkflowEventTriggerBranchesRow(ctx, pullRequestBranchesTriggerEventID, branch)
|
||||
_, err = d.writeWorkflowEventTriggerBranchesRow(ctx, pullRequestBranchesTriggerEventID, branch.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1734,7 +1735,7 @@ func (d *doltWorkflowManager) createWorkflow(ctx *sql.Context, config *WorkflowC
|
||||
// handle pull requests
|
||||
if pullRequestActivitiesTriggerEventID != "" {
|
||||
for _, activity := range config.On.PullRequest.Activities {
|
||||
_, err = d.writeWorkflowEventTriggerActivitiesRow(ctx, pullRequestActivitiesTriggerEventID, activity)
|
||||
_, err = d.writeWorkflowEventTriggerActivitiesRow(ctx, pullRequestActivitiesTriggerEventID, activity.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1744,7 +1745,7 @@ func (d *doltWorkflowManager) createWorkflow(ctx *sql.Context, config *WorkflowC
|
||||
// handle jobs
|
||||
for _, job := range config.Jobs {
|
||||
// insert into jobs
|
||||
jobID, err := d.writeWorkflowJobRow(ctx, workflowName, job.Name)
|
||||
jobID, err := d.writeWorkflowJobRow(ctx, workflowName, job.Name.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1755,29 +1756,29 @@ func (d *doltWorkflowManager) createWorkflow(ctx *sql.Context, config *WorkflowC
|
||||
order := idx + 1
|
||||
|
||||
var stepType WorkflowStepType
|
||||
if step.SavedQueryName != "" {
|
||||
if step.SavedQueryName.Value != "" {
|
||||
stepType = WorkflowStepTypeSavedQuery
|
||||
}
|
||||
|
||||
stepID, err := d.writeWorkflowStepRow(ctx, jobID, step.Name, order, stepType)
|
||||
stepID, err := d.writeWorkflowStepRow(ctx, jobID, step.Name.Value, order, stepType)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// insert into saved query steps
|
||||
if stepType == WorkflowStepTypeSavedQuery {
|
||||
savedQueryStepID, err := d.writeWorkflowSavedQueryStepRow(ctx, stepID, step.SavedQueryName, WorkflowSavedQueryExpectedResultsTypeRowColumnCount)
|
||||
savedQueryStepID, err := d.writeWorkflowSavedQueryStepRow(ctx, stepID, step.SavedQueryName.Value, WorkflowSavedQueryExpectedResultsTypeRowColumnCount)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// insert into expected results
|
||||
expectedColumnComparisonType, expectedColumnCount, err := d.parseSavedQueryExpectedResultString(step.ExpectedColumns)
|
||||
expectedColumnComparisonType, expectedColumnCount, err := d.parseSavedQueryExpectedResultString(step.ExpectedColumns.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
expectedRowComparisonType, expectedRowCount, err := d.parseSavedQueryExpectedResultString(step.ExpectedRows)
|
||||
expectedRowComparisonType, expectedRowCount, err := d.parseSavedQueryExpectedResultString(step.ExpectedRows.Value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -1800,7 +1801,7 @@ func (d *doltWorkflowManager) getWorkflowConfig(ctx *sql.Context, workflowName s
|
||||
return nil, err
|
||||
}
|
||||
|
||||
config.Name = string(*workflow.Name)
|
||||
config.Name = newScalarDoubleQuotedYamlNode(string(*workflow.Name))
|
||||
|
||||
events, err := d.listWorkflowEventsByWorkflowName(ctx, *workflow.Name)
|
||||
if err != nil {
|
||||
@@ -1815,8 +1816,8 @@ func (d *doltWorkflowManager) getWorkflowConfig(ctx *sql.Context, workflowName s
|
||||
return nil, err
|
||||
}
|
||||
|
||||
activities := make([]string, 0)
|
||||
branches := make([]string, 0)
|
||||
activities := make([]yaml.Node, 0)
|
||||
branches := make([]yaml.Node, 0)
|
||||
|
||||
for _, trigger := range triggers {
|
||||
if trigger.EventTriggerType == WorkflowEventTriggerTypeActivities {
|
||||
@@ -1825,7 +1826,7 @@ func (d *doltWorkflowManager) getWorkflowConfig(ctx *sql.Context, workflowName s
|
||||
return nil, err
|
||||
}
|
||||
for _, act := range acts {
|
||||
activities = append(activities, act.Activity)
|
||||
activities = append(activities, newScalarDoubleQuotedYamlNode(act.Activity))
|
||||
}
|
||||
} else if trigger.EventTriggerType == WorkflowEventTriggerTypeBranches {
|
||||
brns, err := d.listWorkflowEventTriggerBranchesByEventTriggerId(ctx, *trigger.Id)
|
||||
@@ -1833,7 +1834,7 @@ func (d *doltWorkflowManager) getWorkflowConfig(ctx *sql.Context, workflowName s
|
||||
return nil, err
|
||||
}
|
||||
for _, brn := range brns {
|
||||
branches = append(branches, brn.Branch)
|
||||
branches = append(branches, newScalarDoubleQuotedYamlNode(brn.Branch))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1900,17 +1901,17 @@ func (d *doltWorkflowManager) getWorkflowConfig(ctx *sql.Context, workflowName s
|
||||
}
|
||||
|
||||
step := Step{
|
||||
Name: stp.Name,
|
||||
SavedQueryName: savedQueryStep.SavedQueryName,
|
||||
ExpectedColumns: expectedColumnsStr,
|
||||
ExpectedRows: expectedRowsStr,
|
||||
Name: newScalarDoubleQuotedYamlNode(stp.Name),
|
||||
SavedQueryName: newScalarDoubleQuotedYamlNode(savedQueryStep.SavedQueryName),
|
||||
ExpectedColumns: newScalarDoubleQuotedYamlNode(expectedColumnsStr),
|
||||
ExpectedRows: newScalarDoubleQuotedYamlNode(expectedRowsStr),
|
||||
}
|
||||
steps = append(steps, step)
|
||||
}
|
||||
}
|
||||
|
||||
job := Job{
|
||||
Name: jb.Name,
|
||||
Name: newScalarDoubleQuotedYamlNode(jb.Name),
|
||||
Steps: steps,
|
||||
}
|
||||
|
||||
@@ -1922,7 +1923,7 @@ func (d *doltWorkflowManager) getWorkflowConfig(ctx *sql.Context, workflowName s
|
||||
}
|
||||
|
||||
func (d *doltWorkflowManager) storeFromConfig(ctx *sql.Context, config *WorkflowConfig) error {
|
||||
_, err := d.getWorkflow(ctx, config.Name)
|
||||
_, err := d.getWorkflow(ctx, config.Name.Value)
|
||||
if err != nil {
|
||||
if err == ErrWorkflowNotFound {
|
||||
return d.createWorkflow(ctx, config)
|
||||
@@ -1949,7 +1950,7 @@ func (d *doltWorkflowManager) StoreAndCommit(ctx *sql.Context, db sqle.Database,
|
||||
return err
|
||||
}
|
||||
|
||||
return d.commitWorkflow(ctx, config.Name)
|
||||
return d.commitWorkflow(ctx, config.Name.Value)
|
||||
}
|
||||
|
||||
func SqlWriteQuery(ctx *sql.Context, qf queryFunc, query string) error {
|
||||
@@ -1960,3 +1961,11 @@ func SqlWriteQuery(ctx *sql.Context, qf queryFunc, query string) error {
|
||||
_, err = sql.RowIterToRows(ctx, rowIter)
|
||||
return err
|
||||
}
|
||||
|
||||
func newScalarDoubleQuotedYamlNode(value string) yaml.Node {
|
||||
return yaml.Node{
|
||||
Kind: yaml.ScalarNode,
|
||||
Style: yaml.DoubleQuotedStyle,
|
||||
Value: value,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user