Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Dockerfile.tar.gz
Binary file not shown.
Binary file added build-test.tar.gz
Binary file not shown.
116 changes: 116 additions & 0 deletions builder_test.go
Original file line number Diff line number Diff line change
@@ -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
}