migrate travis to action, upgrade go chassis (#138)

diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml
new file mode 100644
index 0000000..9640ae5
--- /dev/null
+++ b/.github/workflows/golangci-lint.yml
@@ -0,0 +1,19 @@
+name: golangci-lint
+on:
+  push:
+    tags:
+      - v*
+    branches:
+      - master
+  pull_request:
+jobs:
+  golangci:
+    name: lint
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - name: golangci-lint
+        uses: golangci/golangci-lint-action@v2
+        with:
+          version: v1.29
+          args: --skip-dirs=examples --out-format=colored-line-number --skip-files=.*_test.go$
\ No newline at end of file
diff --git a/.github/workflows/static_check.yml b/.github/workflows/static_check.yml
new file mode 100644
index 0000000..8200f30
--- /dev/null
+++ b/.github/workflows/static_check.yml
@@ -0,0 +1,21 @@
+name: Merge check
+on: [push, pull_request]
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    steps:
+    - name: Set up Go 1.13
+      uses: actions/setup-go@v1
+      with:
+        go-version: 1.13
+      id: go
+
+    - name: Check out code into the Go module directory
+      uses: actions/checkout@v1
+
+    - name: Build
+      run: go build github.com/apache/servicecomb-mesher/cmd/mesher
+
+    - name: UT
+      run: |
+        bash -x scripts/travis/unit_test.sh
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 6a56d3c..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-language: go
-sudo: required
-go:
-  - 1.14.2
-install: true
-
-services:
-  - docker
-
-before_install:
-  - docker pull gomesh/mock-pilot:latest
-  - docker run -d -p 15010:15010 gomesh/mock-pilot:latest
-
-before_script:
-  - mkdir -p $HOME/gopath/src/github.com/apache/servicecomb-mesher
-  - rsync -az ${TRAVIS_BUILD_DIR}/ $HOME/gopath/src/github.com/apache/servicecomb-mesher
-  - export TRAVIS_BUILD_DIR=$HOME/gopath/src/github.com/apache/servicecomb-mesher
-  - export KUBE_CONFIG=$HOME/gopath/src/github.com/apache/servicecomb-mesher/tests/util/sample_kubeconfig
-  - cd $HOME/gopath/src/github.com/apache/servicecomb-mesher
-jobs:
-  include:
-    - stage: Format Checker
-      script: bash -x scripts/travis/formatChecker.sh
-    - stage: DeadCode Checker
-      script:
-        - go get -u github.com/tsenart/deadcode
-        - bash -x scripts/travis/deadCodeChecker.sh
-    - stage: Misspell Checker
-      script:
-        - go get -u github.com/client9/misspell
-        - bash -x scripts/travis/misspellChecker.sh
-    - stage: GoConst Checker
-      script:
-        - go get -u github.com/jgautheron/goconst/cmd/goconst
-        - bash -x scripts/travis/goConstChecker.sh
-    - stage: GoLint Checker
-      script:
-        - go get -u golang.org/x/lint/golint
-        - bash -x scripts/travis/goLintChecker.sh
-    - stage: GoCyclo Checker
-      script:
-        - go get github.com/fzipp/gocyclo
-        - bash -x scripts/travis/goCycloChecker.sh
-    - stage: GoSecure Checker
-      script:
-        - go get github.com/securego/gosec/cmd/gosec
-        - bash -x scripts/travis/goSecureChecker.sh
-    - stage: Build
-      script: 
-        - GO111MODULE=on go mod download
-        - go build github.com/apache/servicecomb-mesher/cmd/mesher
-    - stage: Unit Test
-      script:
-        - go get github.com/mattn/goveralls
-        - go get golang.org/x/tools/cmd/cover
-        - GO111MODULE=on go mod download
-        - bash -x scripts/travis/unit_test.sh && $HOME/gopath/bin/goveralls -coverprofile=coverage.txt -service=travis-ci
-
diff --git a/cmd/mesher/mesher.go b/cmd/mesher/mesher.go
index afef17f..b44f096 100644
--- a/cmd/mesher/mesher.go
+++ b/cmd/mesher/mesher.go
@@ -35,8 +35,6 @@
 
 	_ "github.com/apache/servicecomb-mesher/proxy/pkg/egress/archaius"
 
-	_ "github.com/apache/servicecomb-mesher/proxy/control/istio"
-
 	_ "github.com/apache/servicecomb-mesher/proxy/handler/oauth2"
 
 	//middle wares
diff --git a/go.mod b/go.mod
index 56703eb..648ab14 100644
--- a/go.mod
+++ b/go.mod
@@ -1,20 +1,17 @@
 module github.com/apache/servicecomb-mesher
 
 require (
-	github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473
 	github.com/ghodss/yaml v1.0.0
 	github.com/go-chassis/foundation v0.1.1-0.20200825060850-b16bf420f7b3
-	github.com/go-chassis/go-archaius v1.3.6-0.20200917065837-57a2bca2b7ff
-	github.com/go-chassis/go-chassis/v2 v2.0.3-0.20200917125036-902f9f8fecd2
+	github.com/go-chassis/go-archaius v1.3.6-0.20201103103813-43dd1680ebfb
+	github.com/go-chassis/go-chassis/v2 v2.1.0
 	github.com/go-chassis/gohessian v0.0.0-20180702061429-e5130c25af55
 	github.com/go-chassis/openlog v1.1.2
-	github.com/gogo/googleapis v1.3.1 // indirect
 	github.com/gogo/protobuf v1.3.0
-	github.com/lyft/protoc-gen-validate v0.1.0 // indirect
 	github.com/patrickmn/go-cache v2.1.0+incompatible
 	github.com/prometheus/client_golang v0.9.1
 	github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4
-	github.com/stretchr/testify v1.5.1
+	github.com/stretchr/testify v1.6.1
 	github.com/tetratelabs/go2sky v0.1.1-0.20190703154722-1eaab8035277
 	github.com/urfave/cli v1.20.1-0.20181029213200-b67dcf995b6a
 	golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7
diff --git a/proxy/control/istio/cache.go b/proxy/control/istio/cache.go
deleted file mode 100644
index 76a3e40..0000000
--- a/proxy/control/istio/cache.go
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package istio
-
-import "github.com/patrickmn/go-cache"
-
-//save configs
-var (
-	//key is service name
-	EgressConfigCache = cache.New(0, 0)
-)
diff --git a/proxy/control/istio/panel.go b/proxy/control/istio/panel.go
deleted file mode 100644
index f869824..0000000
--- a/proxy/control/istio/panel.go
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package istio
-
-import (
-	meshercontrol "github.com/apache/servicecomb-mesher/proxy/control"
-	"github.com/apache/servicecomb-mesher/proxy/pkg/egress"
-	"github.com/go-chassis/go-chassis/v2/control"
-	"github.com/go-chassis/go-chassis/v2/core/config/model"
-	"github.com/go-chassis/go-chassis/v2/core/invocation"
-	"github.com/go-chassis/go-chassis/v2/third_party/forked/afex/hystrix-go/hystrix"
-)
-
-func init() {
-	meshercontrol.InstallPlugin("pilot", newPilotPanel)
-}
-
-//PilotPanel pull configs from istio pilot
-type PilotPanel struct {
-}
-
-func newPilotPanel(options meshercontrol.Options) control.Panel {
-	SaveToEgressCache(egress.DefaultEgress.FetchEgressRule())
-	return &PilotPanel{}
-}
-
-//GetEgressRule get egress config
-func (p *PilotPanel) GetEgressRule() []control.EgressConfig {
-	c, ok := EgressConfigCache.Get("")
-	if !ok {
-
-		return nil
-	}
-	return c.([]control.EgressConfig)
-}
-
-//GetCircuitBreaker return command , and circuit breaker settings
-func (p *PilotPanel) GetCircuitBreaker(inv invocation.Invocation, serviceType string) (string, hystrix.CommandConfig) {
-	return "", hystrix.CommandConfig{}
-
-}
-
-//GetLoadBalancing get load balancing config
-func (p *PilotPanel) GetLoadBalancing(inv invocation.Invocation) control.LoadBalancingConfig {
-	return control.LoadBalancingConfig{}
-
-}
-
-//GetRateLimiting get rate limiting config
-func (p *PilotPanel) GetRateLimiting(inv invocation.Invocation, serviceType string) control.RateLimitingConfig {
-	return control.RateLimitingConfig{}
-}
-
-//GetFaultInjection get Fault injection config
-func (p *PilotPanel) GetFaultInjection(inv invocation.Invocation) model.Fault {
-	return model.Fault{}
-}
diff --git a/proxy/control/istio/transfer.go b/proxy/control/istio/transfer.go
deleted file mode 100644
index ed6bd88..0000000
--- a/proxy/control/istio/transfer.go
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package istio
-
-import (
-	"github.com/apache/servicecomb-mesher/proxy/config"
-	"github.com/go-chassis/go-chassis/v2/control"
-)
-
-//SaveToEgressCache save the egress rules in the cache
-func SaveToEgressCache(egressConfigFromPilot map[string][]*config.EgressRule) {
-	{
-		var egressconfig []control.EgressConfig
-		for _, v := range egressConfigFromPilot {
-			for _, v1 := range v {
-				var Ports []*control.EgressPort
-				for _, v2 := range v1.Ports {
-					p := control.EgressPort{
-						Port:     (*v2).Port,
-						Protocol: (*v2).Protocol,
-					}
-					Ports = append(Ports, &p)
-				}
-				c := control.EgressConfig{
-					Hosts: v1.Hosts,
-					Ports: Ports,
-				}
-
-				egressconfig = append(egressconfig, c)
-			}
-		}
-		EgressConfigCache.Set("", egressconfig, 0)
-	}
-}