diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml
index 64672af5ab6d045a6f26633079a1dce55d36432d..40ef43c8c125fdcad481f1436e64006149ca3611 100644
--- a/.github/workflows/github-actions.yml
+++ b/.github/workflows/github-actions.yml
@@ -54,6 +54,11 @@ jobs:
             go get -v -t -d ./...
         fi
 
+    - name: gofmt
+      run: |
+        go fmt ./... && git checkout -- go.mod && git status && [[ -z `git status -s` ]]
+        # diff -u <(echo -n) <(gofmt -d -s .)
+
     - name: Install go ci lint
       run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.27.0
 
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index fb958136b0a61b43f0a8fa650cb1ef3bd3b9d689..0000000000000000000000000000000000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-dist: trusty
-sudo: required
-
-# define the dependence env
-language: go
-os:
-  - linux
-go:
-  - "1.13"
-services:
-  - docker
-env:
-  - GO111MODULE=on
-install: true
-
-# define ci-stage
-script:
-  - go fmt ./... && git checkout -- go.mod && [[ -z `git status -s` ]]
-  # license-check
-  - make verify
-  # integrate-test
-  - chmod +x integrate_test.sh && ./integrate_test.sh
-
-after_success:
-  - bash <(curl -s https://codecov.io/bash)
-
-notifications:
-  webhooks: https://oapi.dingtalk.com/robot/send?access_token=f5d6237f2c79db584e75604f7f88db1ce1673c8c0e98451217b28fde791e1d4f
diff --git a/protocol/dubbo/hessian2/const.go b/protocol/dubbo/hessian2/const.go
index 0c95390fbfff152a926ca2d1ff09682a4cb893ae..96e6eea8ea4cd3088e0d32157c013e93a93cad4e 100644
--- a/protocol/dubbo/hessian2/const.go
+++ b/protocol/dubbo/hessian2/const.go
@@ -75,10 +75,10 @@ const (
 	INT_SHORT_MAX     = 0x3ffff
 	BC_INT_SHORT_ZERO = byte(0xd4)
 
-	BC_LIST_VARIABLE           = byte(0x55)
-	BC_LIST_FIXED              = byte('V')
-	BC_LIST_VARIABLE_UNTYPED   = byte(0x57)
-	BC_LIST_FIXED_UNTYPED      = byte(0x58)
+	BC_LIST_VARIABLE         = byte(0x55)
+	BC_LIST_FIXED            = byte('V')
+	BC_LIST_VARIABLE_UNTYPED = byte(0x57)
+	BC_LIST_FIXED_UNTYPED    = byte(0x58)
 
 	BC_LIST_DIRECT         = byte(0x70)
 	BC_LIST_DIRECT_UNTYPED = byte(0x78)
diff --git a/protocol/dubbo/impl/const.go b/protocol/dubbo/impl/const.go
index 492a87a194eeb9ef673f1c83a499872cfb9724cb..c9b92bad3b402f6f8656ca47c1a2954c7881d68b 100644
--- a/protocol/dubbo/impl/const.go
+++ b/protocol/dubbo/impl/const.go
@@ -75,10 +75,10 @@ const (
 	INT_SHORT_MAX     = 0x3ffff
 	BC_INT_SHORT_ZERO = byte(0xd4)
 
-	BC_LIST_VARIABLE           = byte(0x55)
-	BC_LIST_FIXED              = byte('V')
-	BC_LIST_VARIABLE_UNTYPED   = byte(0x57)
-	BC_LIST_FIXED_UNTYPED      = byte(0x58)
+	BC_LIST_VARIABLE         = byte(0x55)
+	BC_LIST_FIXED            = byte('V')
+	BC_LIST_VARIABLE_UNTYPED = byte(0x57)
+	BC_LIST_FIXED_UNTYPED    = byte(0x58)
 
 	BC_LIST_DIRECT         = byte(0x70)
 	BC_LIST_DIRECT_UNTYPED = byte(0x78)
diff --git a/protocol/jsonrpc/json.go b/protocol/jsonrpc/json.go
index 57d36d2eadd761aa359d55c350772745f1cde819..81ca512271baa19a103b42c059ba63fd14513377 100644
--- a/protocol/jsonrpc/json.go
+++ b/protocol/jsonrpc/json.go
@@ -48,11 +48,11 @@ type CodecData struct {
 const (
 	// Errors defined in the JSON-RPC spec. See
 	// http://www.jsonrpc.org/specification#error_object.
-	CodeParseError       = -32700
-	CodeInvalidRequest   = -32600
-	CodeMethodNotFound   = -32601
-	CodeInvalidParams    = -32602
-	CodeInternalError    = -32603
+	CodeParseError     = -32700
+	CodeInvalidRequest = -32600
+	CodeMethodNotFound = -32601
+	CodeInvalidParams  = -32602
+	CodeInternalError  = -32603
 )
 
 // Error response Error
diff --git a/registry/file/service_discovery_test.go b/registry/file/service_discovery_test.go
index 2f52eb52e1be1f7f06f29d30cd7761e71ecd1bee..0062eae32cc04fd58ae4398ac7a28aabc54892c1 100644
--- a/registry/file/service_discovery_test.go
+++ b/registry/file/service_discovery_test.go
@@ -44,7 +44,7 @@ func TestNewFileSystemServiceDiscoveryAndDestroy(t *testing.T) {
 	serviceDiscovery, err := newFileSystemServiceDiscovery(testName)
 	assert.NoError(t, err)
 	assert.NotNil(t, serviceDiscovery)
-	defer func () {
+	defer func() {
 		err = serviceDiscovery.Destroy()
 		assert.Nil(t, err)
 	}()
@@ -82,7 +82,7 @@ func TestCURDFileSystemServiceDiscovery(t *testing.T) {
 
 	err = serviceDiscovery.Register(r1)
 	assert.NoError(t, err)
-	defer func () {
+	defer func() {
 		err = serviceDiscovery.Destroy()
 		assert.NoError(t, err)
 	}()
diff --git a/remoting/zookeeper/listener_test.go b/remoting/zookeeper/listener_test.go
index 07976dc31db5909a261ed7f76223a12220249207..896bdc60702d17520c62cd0621b00da795c90e6d 100644
--- a/remoting/zookeeper/listener_test.go
+++ b/remoting/zookeeper/listener_test.go
@@ -95,7 +95,7 @@ func TestListener(t *testing.T) {
 `
 	var wait sync.WaitGroup
 	ts, client, event := initZkData(t)
-	defer func () {
+	defer func() {
 		if err := ts.Stop(); err != nil {
 			t.Errorf("ts.Stop() = error: %v", err)
 		}