Merge pull request #35 from sosedoff/detect-event-type
Detect workflow event type
This commit is contained in:
commit
7fcacaadb3
4 changed files with 25 additions and 12 deletions
|
@ -55,18 +55,9 @@ func (runner *runnerImpl) setupWorkflows() error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
defer workflowReader.Close()
|
defer workflowReader.Close()
|
||||||
|
|
||||||
runner.workflowConfig, err = parser.Parse(workflowReader)
|
runner.workflowConfig, err = parser.Parse(workflowReader)
|
||||||
/*
|
|
||||||
if err != nil {
|
|
||||||
parserError := err.(*parser.ParserError)
|
|
||||||
for _, e := range parserError.Errors {
|
|
||||||
fmt.Fprintln(os.Stderr, e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ func TestRunEvent(t *testing.T) {
|
||||||
{"regex.workflow", "push", "exit with `NEUTRAL`: 78"},
|
{"regex.workflow", "push", "exit with `NEUTRAL`: 78"},
|
||||||
{"gitref.workflow", "push", ""},
|
{"gitref.workflow", "push", ""},
|
||||||
{"env.workflow", "push", ""},
|
{"env.workflow", "push", ""},
|
||||||
|
{"detect_event.workflow", "", ""},
|
||||||
}
|
}
|
||||||
log.SetLevel(log.DebugLevel)
|
log.SetLevel(log.DebugLevel)
|
||||||
|
|
||||||
|
|
9
actions/testdata/detect_event.workflow
vendored
Normal file
9
actions/testdata/detect_event.workflow
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
workflow "detect-event" {
|
||||||
|
on = "pull_request"
|
||||||
|
resolves = ["build"]
|
||||||
|
}
|
||||||
|
|
||||||
|
action "build" {
|
||||||
|
uses = "./action1"
|
||||||
|
args = "echo 'build'"
|
||||||
|
}
|
18
cmd/root.go
18
cmd/root.go
|
@ -50,9 +50,7 @@ func setupLogging(cmd *cobra.Command, args []string) {
|
||||||
|
|
||||||
func newRunCommand(runnerConfig *actions.RunnerConfig) func(*cobra.Command, []string) error {
|
func newRunCommand(runnerConfig *actions.RunnerConfig) func(*cobra.Command, []string) error {
|
||||||
return func(cmd *cobra.Command, args []string) error {
|
return func(cmd *cobra.Command, args []string) error {
|
||||||
if len(args) == 0 {
|
if len(args) > 0 {
|
||||||
runnerConfig.EventName = "push"
|
|
||||||
} else {
|
|
||||||
runnerConfig.EventName = args[0]
|
runnerConfig.EventName = args[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,6 +75,20 @@ func parseAndRun(cmd *cobra.Command, runnerConfig *actions.RunnerConfig) error {
|
||||||
}
|
}
|
||||||
defer runner.Close()
|
defer runner.Close()
|
||||||
|
|
||||||
|
// set default event type if we only have a single workflow in the file.
|
||||||
|
// this way user dont have to specify the event.
|
||||||
|
if runnerConfig.EventName == "" {
|
||||||
|
if events := runner.ListEvents(); len(events) == 1 {
|
||||||
|
log.Debugf("Using detected workflow event: %s", events[0])
|
||||||
|
runnerConfig.EventName = events[0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// fall back to default event name if we could not detect one.
|
||||||
|
if runnerConfig.EventName == "" {
|
||||||
|
runnerConfig.EventName = "push"
|
||||||
|
}
|
||||||
|
|
||||||
// check if we should just print the graph
|
// check if we should just print the graph
|
||||||
list, err := cmd.Flags().GetBool("list")
|
list, err := cmd.Flags().GetBool("list")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in a new issue