func main() { defer func() { if r := recover(); r != nil { // log panics forces exit if _, ok := r.(*logrus.Entry); ok { os.Exit(1) } panic(r) } }() formatter.SetRunnerFormatter() app := cli.NewApp() app.Name = path.Base(os.Args[0]) app.Usage = "a GitLab Runner Helper" app.Version = common.AppVersion.ShortLine() cli.VersionPrinter = common.AppVersion.Printer app.Authors = []cli.Author{ cli.Author{ Name: "Kamil Trzciński", Email: "*****@*****.**", }, } cli_helpers.SetupLogLevelOptions(app) app.Commands = common.GetCommands() app.CommandNotFound = func(context *cli.Context, command string) { logrus.Fatalln("Command", command, "not found") } if err := app.Run(os.Args); err != nil { logrus.Fatal(err) } }
func (c *ArtifactsDownloaderCommand) Execute(context *cli.Context) { formatter.SetRunnerFormatter() if len(c.URL) == 0 || len(c.Token) == 0 { logrus.Fatalln("Missing runner credentials") } if c.ID <= 0 { logrus.Fatalln("Missing build ID") } // Create temporary file file, err := ioutil.TempFile("", "artifacts") if err != nil { logrus.Fatalln(err) } file.Close() defer os.Remove(file.Name()) // Download artifacts file err = c.doRetry(func() (bool, error) { return c.download(file.Name()) }) if err != nil { logrus.Fatalln(err) } // Extract artifacts file err = archives.ExtractZipFile(file.Name()) if err != nil { logrus.Fatalln(err) } }
func (c *CacheExtractorCommand) Execute(context *cli.Context) { formatter.SetRunnerFormatter() if len(c.File) == 0 { logrus.Fatalln("Missing cache file") } if c.URL != "" { err := c.doRetry(c.download) if err != nil && !os.IsNotExist(err) { logrus.Warningln(err) } } err := archives.ExtractZipFile(c.File) if err != nil && !os.IsNotExist(err) { logrus.Fatalln(err) } }
func (c *ArtifactsUploaderCommand) Execute(*cli.Context) { formatter.SetRunnerFormatter() if len(c.URL) == 0 || len(c.Token) == 0 { logrus.Fatalln("Missing runner credentials") } if c.ID <= 0 { logrus.Fatalln("Missing build ID") } // Enumerate files err := c.enumerate() if err != nil { logrus.Fatalln(err) } // If the upload fails, exit with a non-zero exit code to indicate an issue? err = c.doRetry(c.createAndUpload) if err != nil { logrus.Fatalln(err) } }