Merge pull request #35 from sosedoff/detect-event-type

Detect workflow event type
This commit is contained in:
Casey Lee 2019-02-16 18:01:36 -07:00 committed by GitHub
commit 7fcacaadb3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 12 deletions

View file

@ -55,18 +55,9 @@ func (runner *runnerImpl) setupWorkflows() error {
if err != nil {
return err
}
defer workflowReader.Close()
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
}

View file

@ -24,6 +24,7 @@ func TestRunEvent(t *testing.T) {
{"regex.workflow", "push", "exit with `NEUTRAL`: 78"},
{"gitref.workflow", "push", ""},
{"env.workflow", "push", ""},
{"detect_event.workflow", "", ""},
}
log.SetLevel(log.DebugLevel)

View file

@ -0,0 +1,9 @@
workflow "detect-event" {
on = "pull_request"
resolves = ["build"]
}
action "build" {
uses = "./action1"
args = "echo 'build'"
}

View file

@ -50,9 +50,7 @@ func setupLogging(cmd *cobra.Command, args []string) {
func newRunCommand(runnerConfig *actions.RunnerConfig) func(*cobra.Command, []string) error {
return func(cmd *cobra.Command, args []string) error {
if len(args) == 0 {
runnerConfig.EventName = "push"
} else {
if len(args) > 0 {
runnerConfig.EventName = args[0]
}
@ -77,6 +75,20 @@ func parseAndRun(cmd *cobra.Command, runnerConfig *actions.RunnerConfig) error {
}
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
list, err := cmd.Flags().GetBool("list")
if err != nil {