diff --git a/Dockerfile.tar.gz b/Dockerfile.tar.gz new file mode 100644 index 0000000..12d64b1 Binary files /dev/null and b/Dockerfile.tar.gz differ diff --git a/build-test.tar.gz b/build-test.tar.gz new file mode 100644 index 0000000..53dddf6 Binary files /dev/null and b/build-test.tar.gz differ diff --git a/builder_test.go b/builder_test.go new file mode 100755 index 0000000..ea1e567 --- /dev/null +++ b/builder_test.go @@ -0,0 +1,116 @@ +package builder + +import ( + "fmt" + "os" + "os/exec" + "testing" +) + +var ( + err error + out []byte + fi os.FileInfo + DockerBinary = "docker" + Build = "build" + TagFlag = "-t" + PwdPath = "." + Run = "run" + Rm = "--rm" + It = "-it" + Privileged = "--privileged" + RepoName = "wsp/builder" + fullEnvCommands = map[string]string{ + "IMAGE_NAME": "wspbuilder001", + "USERNAME": "dylanpoe", + "PASSWORD": "wangshupo4507", + "EMAIL": "1121140449@qq.com", + "DOCKERFILE_URL": "http://192.168.10.1:8080/Dockerfile", + } + + // partialEnvCommands = map[string]string{ + // "EMAIL": "1121140449@qq.com", + // "PASSWORD": "wangshupo4507", + // } +) + +func isFileExists(file string) bool { + fi, err = os.Stat(file) + + if err != nil && os.IsNotExist(err) { + fmt.Printf("file not exist!\n") + return false + } + return true +} + +func isDirExists(path string) bool { + fi, err = os.Stat(path) + + if err != nil { + return os.IsExist(err) + } else { + return fi.IsDir() + } + + panic("not reached") +} + +func SetExportEnv(envmap map[string]string) bool { + for name, str := range envmap { + err := os.Setenv(name, str) + if err != nil { + panic(err) + return false + } + } + for _, envstr := range os.Environ() { + fmt.Printf("%s\n", envstr) + } + return true +} + +func TestMakefileOKInit(t *testing.T) { + //To test the make commands + + if isFileExists("Makefile") { + out, err = exec.Command("make").Output() + if err != nil { + t.Errorf("Fail to execute Makefile %v", err.Error()) + } + } else { + t.Errorf("Makefile does not exist %v", err.Error()) + } + fmt.Println(string(out)) +} + +func TestDockerbuildTag(t *testing.T) { + if isFileExists("builder") { + out, err = exec.Command(DockerBinary, Build, TagFlag, RepoName, PwdPath).Output() + if err != nil { + t.Errorf("Execute docker build -t %v", err.Error()) + } + } + + fmt.Println(string(out)) +} + +func TestDockerPushToHub(t *testing.T) { + if SetExportEnv(fullEnvCommands) { + out, err = exec.Command(DockerBinary, Run, Rm, It, Privileged, RepoName).Output() + if err != nil { + t.Errorf("Execute docker run -rm -it --Privileged fail%v ", err.Error()) + } + // passedParams = GetPassParam() + // if Validate(passedParams) { + // BuildPushImageProcess(passedParams) + // } else { + // //Params didn't validate. Bad Request. + // t.Errorf("Insufficient Information. Must provide at least an Image Name and a Dockerfile/Tarurl. %v", err.Error()) + + // } + fmt.Println(string(out)) + } + + return +}