diff --git a/.gitignore b/.gitignore index 0c4a5c8ea9ad66658f83f4b6226e9eedfd3a6b23..36cfbb178c62e2e1de4523ed092c232941a586e6 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,6 @@ *.out bin/ -release/ \ No newline at end of file +release/ + +*.xml diff --git a/Jenkinsfile b/Jenkinsfile index a79bda6e58c762b0292c85e68c416f43ea0a31d5..6996f9d18f69d5a77e7dd334bd4092ee45f7067a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -33,13 +33,15 @@ pipeline { stage('Test') { steps { container('golang') { - sh label: 'go test', script: ''' - go test ./util/... -v - go test ./client/... -v - go test ./app/... -v - ''' + sh label: 'go test', script: 'make test' } } } } + + post { + always { + junit allowEmptyResults: true, testResults: "*/**/*.xml" + } + } } \ No newline at end of file diff --git a/Makefile b/Makefile index 93e8ff7412cd4c03113c6c5d0990c37e20496523..ff8639fcdb6c3975a5283ec06fb7ed97779d36d1 100644 --- a/Makefile +++ b/Makefile @@ -34,6 +34,11 @@ clean: ## Clean the generated artifacts copy: darwin sudo cp bin/darwin/$(NAME) $(shell which jcli) +test: + go test ./util/... -v -coverprofile bin/testcover-util.log + go test ./client/... -v -coverprofile bin/testcover-client.log + go test ./app/... -v -coverprofile bin/testcover-app.log + dep: go get github.com/AlecAivazis/survey/v2 go get github.com/gosuri/uiprogress diff --git a/app/cmd/center.go b/app/cmd/center.go index 9e2a5088799a78f5fff025698f4ef198e8040de2..8bba36d11f8ffa2a022ed54b72ab5d8900a2b862 100644 --- a/app/cmd/center.go +++ b/app/cmd/center.go @@ -28,7 +28,7 @@ var centerCmd = &cobra.Command{ Short: "Manage your update center", Long: `Manage your update center`, Run: func(_ *cobra.Command, _ []string) { - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() printJenkinsStatus(jenkins) for { diff --git a/app/cmd/config.go b/app/cmd/config.go index 348b6161d748023c2c48bf2c88061107f393c3e0..b11c365408676687672e8144dc8e47442bb72a49 100644 --- a/app/cmd/config.go +++ b/app/cmd/config.go @@ -50,9 +50,15 @@ type JenkinsServer struct { Description string `yaml:"description"` } +type PreHook struct { + Path string `yaml:"path"` + Command string `yaml:"cmd"` +} + type Config struct { Current string `yaml:"current"` JenkinsServers []JenkinsServer `yaml:"jenkins_servers"` + PreHooks []PreHook `yaml:"preHooks"` } func setCurrentJenkins(name string) { diff --git a/app/cmd/config_edit.go b/app/cmd/config_edit.go index 6a0eece031b5c180e392a743558ecc600f7fabc6..a9b22705ef866147e1e2b670b02360f82b37c795 100644 --- a/app/cmd/config_edit.go +++ b/app/cmd/config_edit.go @@ -19,7 +19,7 @@ var configEditCmd = &cobra.Command{ Short: "Edit a Jenkins config", Long: `Edit a Jenkins config`, Run: func(_ *cobra.Command, _ []string) { - current := getCurrentJenkins() + current := getCurrentJenkinsFromOptionsOrDie() configPath := configOptions.ConfigFileLocation var data []byte diff --git a/app/cmd/job_build.go b/app/cmd/job_build.go index 3da0a49fca4b013551c5e21347e71016f2a18551..20fd716ff50d4a798bce14b5b3874ae98ab7d955 100644 --- a/app/cmd/job_build.go +++ b/app/cmd/job_build.go @@ -42,7 +42,7 @@ var jobBuildCmd = &cobra.Command{ return } - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/job_create.go b/app/cmd/job_create.go index a344f27c4ec393b3827121ee818d0e08833b522d..b643e8d529d3a7289fd742bf38bf95b2e614b96e 100644 --- a/app/cmd/job_create.go +++ b/app/cmd/job_create.go @@ -29,7 +29,7 @@ var jobCreateCmd = &cobra.Command{ jobName := args[0] - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/job_delete.go b/app/cmd/job_delete.go index 7dad78364d6295c5ad0f40a69f493388939c9600..2bd1e7b1da6b879415810abd9b3501fa327bec71 100644 --- a/app/cmd/job_delete.go +++ b/app/cmd/job_delete.go @@ -34,7 +34,7 @@ var jobDeleteCmd = &cobra.Command{ return } - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/job_edit.go b/app/cmd/job_edit.go index 143da1a0ceb8eecf45de5ca16ec054b0544cd241..71091f82998a1c98eddf29a0c8629515eee45605 100644 --- a/app/cmd/job_edit.go +++ b/app/cmd/job_edit.go @@ -42,7 +42,7 @@ var jobEditCmd = &cobra.Command{ log.Fatal(err) } - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/job_history.go b/app/cmd/job_history.go index c6f21fe70854876f5af7e135d5e90defab319a17..94b8d1d8d01c638ca00023969533d45dd0c088c9 100644 --- a/app/cmd/job_history.go +++ b/app/cmd/job_history.go @@ -33,7 +33,7 @@ var jobHistoryCmd = &cobra.Command{ jobName := args[0] - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/job_log.go b/app/cmd/job_log.go index 0918ad220a7a7759c9f6d56893a26682f190724d..168d68e437d56b9567f82187a83b77444943bfd6 100644 --- a/app/cmd/job_log.go +++ b/app/cmd/job_log.go @@ -38,7 +38,7 @@ var jobLogCmd = &cobra.Command{ } name := args[0] - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/job_param.go b/app/cmd/job_param.go index 99d9cb217181640ce1448e3acf10ba690ac1f4ca..3017367109ff040174f2ba9c415796f3b4f38b8a 100644 --- a/app/cmd/job_param.go +++ b/app/cmd/job_param.go @@ -34,7 +34,7 @@ var jobParamCmd = &cobra.Command{ } name := args[0] - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/job_search.go b/app/cmd/job_search.go index 12eedab36c7372dc704931308e031d6e32b905d8..0ceb01e4658b7d8cf61123657461c0e9cd7f7d86 100644 --- a/app/cmd/job_search.go +++ b/app/cmd/job_search.go @@ -31,7 +31,7 @@ var jobSearchCmd = &cobra.Command{ keyword := args[0] - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/job_stop.go b/app/cmd/job_stop.go index 367b3cb10d4d416eada1db5c5e99dc07f536c7c7..ea6ed273aadfaccbf3369623305b0706220dd3e1 100644 --- a/app/cmd/job_stop.go +++ b/app/cmd/job_stop.go @@ -43,7 +43,7 @@ var jobStopCmd = &cobra.Command{ return } - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/job_type.go b/app/cmd/job_type.go index b3ed5a98851a5ca6a8e42b7552f54b887f3d9ece..33059763bd833726ea18567669a5a6e46eb63daa 100644 --- a/app/cmd/job_type.go +++ b/app/cmd/job_type.go @@ -26,7 +26,7 @@ var jobTypeCmd = &cobra.Command{ Short: "Print the types of job which in your Jenkins", Long: `Print the types of job which in your Jenkins`, Run: func(_ *cobra.Command, _ []string) { - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/plugin_check.go b/app/cmd/plugin_check.go index b915e700976ac3e4c3e2040f003b52059cddd736..defafd1c8569c3c4addeea05d6368a7b3e4fb24e 100644 --- a/app/cmd/plugin_check.go +++ b/app/cmd/plugin_check.go @@ -19,7 +19,7 @@ var pluginCheckCmd = &cobra.Command{ Short: "Checkout update center server", Long: `Checkout update center server`, Run: func(_ *cobra.Command, _ []string) { - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.PluginManager{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/plugin_install.go b/app/cmd/plugin_install.go index 5f51341aa5840137611b71f7c57f5775fde31c8f..2be9a8b24cff4b9b6025ef877090ff22faa99a44 100644 --- a/app/cmd/plugin_install.go +++ b/app/cmd/plugin_install.go @@ -18,7 +18,7 @@ var pluginInstallCmd = &cobra.Command{ Short: "Install the plugins", Long: `Install the plugins`, Run: func(_ *cobra.Command, args []string) { - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.PluginManager{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/plugin_list.go b/app/cmd/plugin_list.go index 745925e7c9e76079a608c59de66f6d119b5c2fd3..8ee4900579130e7b6c575127f4e8cb90898fa118 100644 --- a/app/cmd/plugin_list.go +++ b/app/cmd/plugin_list.go @@ -31,7 +31,7 @@ var pluginListCmd = &cobra.Command{ Example: ` jcli plugin list --filter name=github jcli plugin list --filter hasUpdate`, Run: func(_ *cobra.Command, _ []string) { - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.PluginManager{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/plugin_open.go b/app/cmd/plugin_open.go index 3e1704575be3e0e467ef8c5f22f9047e4655704b..2d4e97d2a592e61ec60730d0a72e8c2729587262 100644 --- a/app/cmd/plugin_open.go +++ b/app/cmd/plugin_open.go @@ -16,7 +16,7 @@ var pluginOpenCmd = &cobra.Command{ Short: "Openout update center server", Long: `Openout update center server`, Run: func(_ *cobra.Command, _ []string) { - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() if jenkins.URL != "" { open(fmt.Sprintf("%s/pluginManager", jenkins.URL)) diff --git a/app/cmd/plugin_search.go b/app/cmd/plugin_search.go index 0c0a2ffa76a6b236b612d15191fab21dcbd37682..37ce9c759cff918ca8d45bbfb58a07d66fdfd684 100644 --- a/app/cmd/plugin_search.go +++ b/app/cmd/plugin_search.go @@ -34,7 +34,7 @@ var pluginSearchCmd = &cobra.Command{ keyword := args[0] - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.PluginManager{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/plugin_uninstall.go b/app/cmd/plugin_uninstall.go index 3544fce4833219e7cc953b051998056f8e2d7ca0..eb945fa028ca4c490937c05c351f2eeacd1a866d 100644 --- a/app/cmd/plugin_uninstall.go +++ b/app/cmd/plugin_uninstall.go @@ -24,7 +24,7 @@ var pluginUninstallCmd = &cobra.Command{ pluginName = args[0] - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.PluginManager{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/plugin_upload.go b/app/cmd/plugin_upload.go index 297d859c5370d087c39f8834c20f8086ba8fb532..df8a483d3a3d8fa225c8d5ed819c10ebe8ee1b1c 100644 --- a/app/cmd/plugin_upload.go +++ b/app/cmd/plugin_upload.go @@ -40,7 +40,7 @@ var pluginUploadCmd = &cobra.Command{ Long: `Upload a plugin from local filesystem or remote URL to your Jenkins`, Example: ` jcli plugin upload --remote https://server/sample.hpi jcli plugin upload sample.hpi`, - PreRun: func(_ *cobra.Command, args []string) { + PreRun: func(cmd *cobra.Command, args []string) { if pluginUploadOption.Remote != "" { file, err := ioutil.TempFile(".", "jcli-plugin") if err != nil { @@ -70,6 +70,8 @@ var pluginUploadCmd = &cobra.Command{ log.Fatal(err) } } else if len(args) == 0 { + executePreCmd(cmd, args) + path, _ := os.Getwd() dirName := filepath.Base(path) dirName = strings.Replace(dirName, "-plugin", "", -1) @@ -81,7 +83,7 @@ var pluginUploadCmd = &cobra.Command{ } }, Run: func(_ *cobra.Command, _ []string) { - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.PluginManager{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/queue.go b/app/cmd/queue.go index e8e947c571776a0eb9e1d82b1b0e777cee2c041b..6c810f46ce6a74323135f8a2b017a6489d0e4891 100644 --- a/app/cmd/queue.go +++ b/app/cmd/queue.go @@ -24,7 +24,7 @@ var queueCmd = &cobra.Command{ Short: "Print the queue of your Jenkins", Long: `Print the queue of your Jenkins`, Run: func(_ *cobra.Command, _ []string) { - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.QueueClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/restart.go b/app/cmd/restart.go index 49b01719edee8019f523aabb8231ed9dab8f8983..2b948e23077d56dd6932a35835b8d4edd7ab13c2 100644 --- a/app/cmd/restart.go +++ b/app/cmd/restart.go @@ -25,7 +25,7 @@ var restartCmd = &cobra.Command{ Short: "Restart your Jenkins", Long: `Restart your Jenkins`, Run: func(_ *cobra.Command, _ []string) { - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() if !restartOption.Batch { confirm := false prompt := &survey.Confirm{ diff --git a/app/cmd/root.go b/app/cmd/root.go index 7f6c4d046dafda898158dc86e2e94704350553da..aa746bb634fa546aa8f66b784fa83d27718884dd 100644 --- a/app/cmd/root.go +++ b/app/cmd/root.go @@ -4,12 +4,16 @@ import ( "fmt" "log" "os" + "os/exec" + "strings" "github.com/jenkins-zh/jenkins-cli/app" "github.com/spf13/cobra" ) +// RootOptions is a global option for whole cli type RootOptions struct { + Jenkins string Version bool Debug bool } @@ -23,7 +27,7 @@ var rootCmd = &cobra.Command{ Run: func(_ *cobra.Command, _ []string) { fmt.Println("Jenkins CLI (jcli) manage your Jenkins") - current := getCurrentJenkins() + current := getCurrentJenkinsFromOptionsOrDie() if current != nil { fmt.Println("Current Jenkins is:", current.Name) } else { @@ -48,6 +52,7 @@ var rootOptions RootOptions func init() { cobra.OnInitialize(initConfig) + rootCmd.PersistentFlags().StringVarP(&rootOptions.Jenkins, "jenkins", "j", "", "Select a Jenkins server for this time") rootCmd.PersistentFlags().BoolVarP(&rootOptions.Version, "version", "v", false, "Print the version of Jenkins CLI") rootCmd.PersistentFlags().BoolVarP(&rootOptions.Debug, "debug", "", false, "Print the output into debug.html") } @@ -62,3 +67,60 @@ func initConfig() { log.Fatalf("Config file is invalid: %v", err) } } + +func getCurrentJenkinsFromOptions() (jenkinsServer *JenkinsServer) { + jenkinsOpt := rootOptions.Jenkins + if jenkinsOpt == "" { + jenkinsServer = getCurrentJenkins() + } else { + jenkinsServer = findJenkinsByName(jenkinsOpt) + } + return +} + +func getCurrentJenkinsFromOptionsOrDie() (jenkinsServer *JenkinsServer) { + if jenkinsServer = getCurrentJenkinsFromOptions(); jenkinsServer == nil { + log.Fatal("Cannot found Jenkins by", rootOptions.Jenkins) // TODO not accurate + } + return +} + +func getCmdPath(cmd *cobra.Command) string { + current := cmd.Use + if cmd.HasParent() { + parentName := getCmdPath(cmd.Parent()) + if parentName == "" { + return current + } + + return fmt.Sprintf("%s.%s", parentName, current) + } + // don't need the name of root cmd + return "" +} + +func executePreCmd(cmd *cobra.Command, _ []string) { + config := getConfig() + if config == nil { + log.Fatal("Cannot find config file") + return + } + + path := getCmdPath(cmd) + for _, preHook := range config.PreHooks { + if path != preHook.Path { + continue + } + + execute(preHook.Command) + } +} + +func execute(command string) { + array := strings.Split(command, " ") + cmd := exec.Command(array[0], array[1:]...) + cmd.Stdout = os.Stdout + if err := cmd.Run(); err != nil { + log.Fatal(err) + } +} diff --git a/app/cmd/root_test.go b/app/cmd/root_test.go new file mode 100644 index 0000000000000000000000000000000000000000..0ba89208c18ef9a479f85e9794c13f28caef8d2e --- /dev/null +++ b/app/cmd/root_test.go @@ -0,0 +1,55 @@ +package cmd + +import ( + "github.com/golang/mock/gomock" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "github.com/spf13/cobra" +) + +var _ = Describe("Root cmd test", func() { + var ( + ctrl *gomock.Controller + rootCmd *cobra.Command + ) + + BeforeEach(func() { + ctrl = gomock.NewController(GinkgoT()) + rootCmd = &cobra.Command{Use: "root"} + }) + + AfterEach(func() { + ctrl.Finish() + }) + + Context("PreHook test", func() { + It("only with root cmd", func() { + path := getCmdPath(rootCmd) + Expect(path).To(Equal("")) + }) + + It("one sub cmd", func() { + subCmd := &cobra.Command{ + Use: "sub", + } + rootCmd.AddCommand(subCmd) + + path := getCmdPath(subCmd) + Expect(path).To(Equal("sub")) + }) + + It("two sub cmds", func() { + sub1Cmd := &cobra.Command{ + Use: "sub1", + } + sub2Cmd := &cobra.Command{ + Use: "sub2", + } + rootCmd.AddCommand(sub1Cmd) + sub1Cmd.AddCommand(sub2Cmd) + + path := getCmdPath(sub2Cmd) + Expect(path).To(Equal("sub1.sub2")) + }) + }) +}) diff --git a/app/cmd/setup_test.go b/app/cmd/setup_test.go new file mode 100644 index 0000000000000000000000000000000000000000..9a75d9e6721d92fdf37ad2e57aa3037cb5e6a129 --- /dev/null +++ b/app/cmd/setup_test.go @@ -0,0 +1,16 @@ +package cmd + +import ( + "testing" + + "github.com/onsi/ginkgo/reporters" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +func TestApp(t *testing.T) { + RegisterFailHandler(Fail) + junitReporter := reporters.NewJUnitReporter("test-app.xml") + RunSpecsWithDefaultAndCustomReporters(t, "app/cmd", []Reporter{junitReporter}) +} diff --git a/app/cmd/user.go b/app/cmd/user.go index 535d3a93f36001a29c5d09774b584f436e7e506f..6de12a6ebfc6e1ec9ec3884d5fc6f4b59dfa48dd 100644 --- a/app/cmd/user.go +++ b/app/cmd/user.go @@ -24,7 +24,7 @@ var userCmd = &cobra.Command{ Short: "Print the user of your Jenkins", Long: `Print the user of your Jenkins`, Run: func(_ *cobra.Command, _ []string) { - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.UserClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/user_create.go b/app/cmd/user_create.go index 1258da2bd2f1aa1e491e383e63b92df1b6008a0f..0a3caf23a5bab0270bc52c275cc2832d7600f11d 100644 --- a/app/cmd/user_create.go +++ b/app/cmd/user_create.go @@ -29,7 +29,7 @@ var userCreateCmd = &cobra.Command{ username := args[0] - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.UserClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/user_delete.go b/app/cmd/user_delete.go index 1772041cd8b090e32c9a37f7ea749e26d4fd6a51..cde6a8b26d006124dd98dced665b82a08af79917 100644 --- a/app/cmd/user_delete.go +++ b/app/cmd/user_delete.go @@ -35,7 +35,7 @@ var userDeleteCmd = &cobra.Command{ return } - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.UserClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/user_edit.go b/app/cmd/user_edit.go index 90478d5abff4ba93130a8d3e9c6cef8530911cc3..09547907e028d8fb50701d529b1754893f268404 100644 --- a/app/cmd/user_edit.go +++ b/app/cmd/user_edit.go @@ -24,7 +24,7 @@ var userEditCmd = &cobra.Command{ Short: "Edit the user of your Jenkins", Long: `Edit the user of your Jenkins`, Run: func(_ *cobra.Command, _ []string) { - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.UserClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/user_token.go b/app/cmd/user_token.go index 663c27e8f0080322b5f59e099a6e990797cf9cf0..5a13a60402f6df4baadbd6ea0b1f5f50318d5292 100644 --- a/app/cmd/user_token.go +++ b/app/cmd/user_token.go @@ -31,7 +31,7 @@ var userTokenCmd = &cobra.Command{ return } - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.UserClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/util/setup_test.go b/util/setup_test.go index 713023cdcf20a902d58768cea4e3b29265bd9ec1..0a4e205019a10b3a1efd13dd40be8b7c957b02f4 100644 --- a/util/setup_test.go +++ b/util/setup_test.go @@ -3,11 +3,14 @@ package util import ( "testing" + "github.com/onsi/ginkgo/reporters" + . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) func TestUtils(t *testing.T) { RegisterFailHandler(Fail) - RunSpecs(t, "jcli utils test") + junitReporter := reporters.NewJUnitReporter("test-utils.xml") + RunSpecsWithDefaultAndCustomReporters(t, "util", []Reporter{junitReporter}) }