diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index ec3b1fec7..000000000 --- a/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -language: go - -go: - - 1.14.x - -install: pwd - -script: - - go run -mod=readonly build/validate/validate.go - - go test -mod=readonly ./... - -notifications: - email: - on_success: never # default: change - on_failure: always # default: always - webhooks: - urls: - - https://webhooks.gitter.im/e/4f27a4a85d6f4475be19 - on_success: always - on_failure: always - on_start: always diff --git a/build/validate/validate.go b/build/validate/validate.go deleted file mode 100644 index de90ef68a..000000000 --- a/build/validate/validate.go +++ /dev/null @@ -1,130 +0,0 @@ -package main - -import ( - "context" - "crypto/aes" - "crypto/cipher" - "encoding/base64" - "fmt" - "os" - "os/exec" - "strings" - - "github.com/google/go-github/v35/github" - "golang.org/x/oauth2" -) - -func main() { - failed := false - - run := func(ctx string, preStatus string, goodStatus string, f func() error) { - setStatus(stPending, preStatus, ctx) - if err := f(); err != nil { - fmt.Println(err) - setStatus(stError, err.Error(), ctx) - failed = true - } else { - setStatus(stSuccess, goodStatus, ctx) - } - } - - run("gofmt", "Checking gofmt", "gofmt ok", checkGoFmt) - run("gogen", "Checking go generate", "go generate ok", checkGoGenerate) - if failed { - os.Exit(1) - } -} - -func checkGoFmt() error { - cmd := exec.Command("gofmt", "-s", "-l", ".") - out, err := cmd.CombinedOutput() - if err != nil { - return err - } - if len(out) == 0 { - return nil - } - files := strings.Split(string(out), "\n") - fList := "" - for _, f := range files { - if strings.HasPrefix(f, "vendor") { - continue - } - if fList != "" { - fList += "\n" - } - fList += f - } - if fList == "" { - return nil - } - return fmt.Errorf("the following files need to have gofmt run on them:\n%s", fList) -} - -func checkGoGenerate() error { - cmd := exec.Command("go", "generate") - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - err := cmd.Run() - if err != nil { - return err - } - modified, err := getModifiedFiles() - if err != nil { - return err - } - if len(modified) != 0 { - return fmt.Errorf("ERROR: The following files are modified after go generate:\n%s", strings.Join(modified, "\n")) - } - return nil -} - -func getModifiedFiles() ([]string, error) { - cmd := exec.Command("git", strings.Split("diff --name-only", " ")...) - out, err := cmd.CombinedOutput() - if err != nil { - return nil, err - } - if len(out) == 0 { - return nil, nil - } - return strings.Split(string(out), "\n"), nil -} - -const ( - stPending = "pending" - stSuccess = "success" - stError = "error" -) - -func setStatus(status string, desc string, ctx string) { - if commitish == "" || ctx == "" { - return - } - client.Repositories.CreateStatus(context.Background(), "StackExchange", "dnscontrol", commitish, &github.RepoStatus{ - Context: &ctx, - Description: &desc, - State: &status, - }) -} - -var client *github.Client -var commitish string - -func init() { - // not intended for security, just minimal obfuscation. - key, _ := base64.StdEncoding.DecodeString("qIOy76aRcXcxm3vb82tvZqW6JoYnpncgVKx7qej1y+4=") - iv, _ := base64.StdEncoding.DecodeString("okRtW8z6Mx04Y9yMk1cb5w==") - garb, _ := base64.StdEncoding.DecodeString("ut8AtS6re1g7m/onk0ciIq7OxNOdZ/tsQ5ay6OfxKcARnBGY0bQ+pA==") - c, _ := aes.NewCipher(key) - d := cipher.NewCFBDecrypter(c, iv) - t := make([]byte, len(garb)) - d.XORKeyStream(t, garb) - hc := oauth2.NewClient(context.Background(), oauth2.StaticTokenSource(&oauth2.Token{AccessToken: string(t)})) - client = github.NewClient(hc) - - // get current version if in travis build - if tc := os.Getenv("TRAVIS_COMMIT"); tc != "" { - commitish = tc - } -}