-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.go
66 lines (55 loc) · 1.97 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package main
import (
"os"
"github.com/bitrise-io/go-steputils/v2/stepconf"
"github.com/bitrise-io/go-steputils/v2/stepenv"
"github.com/bitrise-io/go-utils/v2/command"
"github.com/bitrise-io/go-utils/v2/env"
"github.com/bitrise-io/go-utils/v2/log"
"github.com/bitrise-io/go-utils/v2/pathutil"
"github.com/bitrise-io/go-xcode/v2/destination"
"github.com/bitrise-io/go-xcode/v2/xcodeversion"
"github.com/bitrise-steplib/bitrise-step-xcode-test-without-building/step"
"github.com/bitrise-steplib/bitrise-step-xcode-test-without-building/xcodebuild"
)
func main() {
os.Exit(run())
}
func run() int {
exitCode := 0
logger := log.NewLogger()
xcodebuildTester := createXcodebuildTester(logger)
config, err := xcodebuildTester.ProcessConfig()
if err != nil {
logger.Errorf(err.Error())
exitCode = 1
return exitCode
}
result, err := xcodebuildTester.Run(*config)
if err != nil {
logger.TErrorf(err.Error())
exitCode = 1
}
if err = xcodebuildTester.ExportOutputs(*result); err != nil {
logger.Errorf(err.Error())
exitCode = 1
}
return exitCode
}
func createXcodebuildTester(logger log.Logger) step.XcodebuildTester {
osEnvs := env.NewRepository()
inputParser := stepconf.NewInputParser(osEnvs)
outputEnvStore := stepenv.NewRepository(osEnvs)
commandFactory := command.NewFactory(osEnvs)
pathProvider := pathutil.NewPathProvider()
pathChecker := pathutil.NewPathChecker()
xcodeversionProvider := xcodeversion.NewXcodeVersionProvider(commandFactory)
xcodeVersion, err := xcodeversionProvider.GetVersion()
if err != nil { // not a fatal error, continuing with version left empty
logger.Errorf("failed to read Xcode version: %s", err)
}
deviceFinder := destination.NewDeviceFinder(logger, commandFactory, xcodeVersion)
xcbuild := xcodebuild.New(logger, commandFactory, pathProvider, pathChecker)
outputExporter := step.NewOutputExporter()
return step.NewXcodebuildTester(logger, inputParser, deviceFinder, pathChecker, xcbuild, outputEnvStore, outputExporter)
}