func runStep(step stepmanModels.StepModel, stepIDData models.StepIDData, stepDir string) (int, error) { log.Debugf("[BITRISE_CLI] - Try running step: %s (%s)", stepIDData.IDorURI, stepIDData.Version) // Check dependencies for _, dep := range step.Dependencies { switch dep.Manager { case depManagerBrew: err := dependencies.InstallWithBrewIfNeeded(dep.Name) if err != nil { return 1, err } break default: return 1, errors.New("Not supported dependency (" + dep.Manager + ") (" + dep.Name + ")") } } // Add step envs for _, input := range step.Inputs { key, value, err := input.GetKeyValuePair() if err != nil { return 1, err } opts, err := input.GetOptions() if err != nil { return 1, err } if value != "" { log.Debugf("Input: %#v\n", input) if err := bitrise.RunEnvmanAdd(key, value, *opts.IsExpand); err != nil { log.Errorln("[BITRISE_CLI] - Failed to run envman add") return 1, err } } } stepCmd := stepDir + "/" + "step.sh" cmd := []string{"bash", stepCmd} log.Debug("OUTPUT:") if exit, err := bitrise.RunEnvmanRunInDir(bitrise.CurrentDir, cmd, "panic"); err != nil { return exit, err } log.Debugf("[BITRISE_CLI] - Step executed: %s (%s)", stepIDData.IDorURI, stepIDData.Version) return 0, nil }
func exportEnvironmentsList(envsList []envmanModels.EnvironmentItemModel) error { log.Debugln("[BITRISE_CLI] - Exporting environments:", envsList) for _, env := range envsList { key, value, err := env.GetKeyValuePair() if err != nil { return err } opts, err := env.GetOptions() if err != nil { return err } if value != "" { if err := bitrise.RunEnvmanAdd(key, value, *opts.IsExpand); err != nil { log.Errorln("[BITRISE_CLI] - Failed to run envman add") return err } } } return nil }