You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2022/04/13 02:20:06 UTC
[skywalking-infra-e2e] 01/01: Support installing via go install and add install doc
This is an automated email from the ASF dual-hosted git repository.
kezhenxu94 pushed a commit to branch goinstall
in repository https://gitbox.apache.org/repos/asf/skywalking-infra-e2e.git
commit 246dce6495d7b9f50572369b9d6fa4003a3ee534
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Wed Apr 13 09:59:16 2022 +0800
Support installing via go install and add install doc
---
.gitignore | 7 ++++---
Makefile | 6 +++---
cmd/{ => e2e}/main.go | 0
docs/en/setup/Install.md | 30 ++++++++++++++++++++++++++++++
docs/en/setup/README.md | 3 ++-
docs/menu.yml | 4 +++-
internal/components/cleanup/kind.go | 3 +--
internal/components/verifier/funcs.go | 6 +++---
internal/config/globalConfig.go | 5 ++---
internal/util/k8s.go | 5 ++---
internal/util/utils.go | 5 ++---
11 files changed, 52 insertions(+), 22 deletions(-)
diff --git a/.gitignore b/.gitignore
index 773aa1e..2b6d05a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,17 +5,18 @@
# 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.
-#
+#
.idea/
bin/
.DS_Store
coverage.txt
+.vscode/
diff --git a/Makefile b/Makefile
index d7b224d..0c88cb1 100644
--- a/Makefile
+++ b/Makefile
@@ -5,9 +5,9 @@
# 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
@@ -55,7 +55,7 @@ test: clean
.PHONY: $(PLATFORMS)
$(PLATFORMS):
mkdir -p $(OUT_DIR)
- GOOS=$(os) GOARCH=$(GOARCH) $(GO_BUILD) $(GO_BUILD_FLAGS) -ldflags "$(GO_BUILD_LDFLAGS)" -o $(OUT_DIR)/$(os)/$(PROJECT) cmd/main.go
+ GOOS=$(os) GOARCH=$(GOARCH) $(GO_BUILD) $(GO_BUILD_FLAGS) -ldflags "$(GO_BUILD_LDFLAGS)" -o $(OUT_DIR)/$(os)/$(PROJECT) cmd/e2e/main.go
.PHONY: build
build: windows linux darwin
diff --git a/cmd/main.go b/cmd/e2e/main.go
similarity index 100%
rename from cmd/main.go
rename to cmd/e2e/main.go
diff --git a/docs/en/setup/Install.md b/docs/en/setup/Install.md
new file mode 100644
index 0000000..42eec17
--- /dev/null
+++ b/docs/en/setup/Install.md
@@ -0,0 +1,30 @@
+# Install SkyWalking Infra E2E
+
+## Download pre-built binaries
+
+Download the pre-built binaries from [our website](https://skywalking.apache.org/downloads/#SkyWalkingInfraE2E),
+currently we have pre-built binaries for macOS, Linux and Windows. Extract the tarball and add `bin/<os>/e2e`
+to you `PATH` environment variable.
+
+## Install from source codes
+
+If you want to try some features that are not released yet, you can compile from the source code.
+
+```shell
+mkdir skywalking-infra-e2e && cd skywalking-infra-e2e
+git clone https://github.com/apache/skywalking-infra-e2e.git .
+make build
+```
+
+Then add the binary in `bin/<os>/e2e` to your `PATH`.
+
+## Install via `go install`
+
+If you already have Go SDK installed, you can also directly install `e2e` via `go install`.
+
+```shell
+go install github.com/apache/skywalking-infra-e2e/cmd/e2e@<revision>
+```
+
+Note that installation via `go install` is only supported after Git commit (TODO after this gets merged)
+so you can only `go install` a revision afterwards.
diff --git a/docs/en/setup/README.md b/docs/en/setup/README.md
index 679d47b..9961f58 100644
--- a/docs/en/setup/README.md
+++ b/docs/en/setup/README.md
@@ -3,5 +3,6 @@
The most important thing in E2E Testing is that it uses a separate configuration file and command to execute.
If you haven't read the [Module Design](../concepts-and-designs/module-design.md), recommend read this document first.
+* [Installation](Install.md)
* [Configuration file](Configuration-File.md)
-* [Run E2E Tests](Run-E2E-Tests.md)
\ No newline at end of file
+* [Run E2E Tests](Run-E2E-Tests.md)
diff --git a/docs/menu.yml b/docs/menu.yml
index 71e2dbd..4ad2e27 100644
--- a/docs/menu.yml
+++ b/docs/menu.yml
@@ -27,6 +27,8 @@ catalog:
path: /en/concepts-and-designs/module-design
- name: Setup
catalog:
+ - name: Installation
+ path: /en/setup/install
- name: Configuration file
path: /en/setup/configuration-file
- name: Run E2E Tests
@@ -34,4 +36,4 @@ catalog:
- name: Contribution
catalog:
- name: Compiling Guidance
- path: /en/contribution/compiling-guidance
\ No newline at end of file
+ path: /en/contribution/compiling-guidance
diff --git a/internal/components/cleanup/kind.go b/internal/components/cleanup/kind.go
index 9e2abf6..f0f6888 100644
--- a/internal/components/cleanup/kind.go
+++ b/internal/components/cleanup/kind.go
@@ -19,7 +19,6 @@
package cleanup
import (
- "io/ioutil"
"os"
"strings"
@@ -57,7 +56,7 @@ func KindCleanUp(e2eConfig *config.E2EConfig) error {
}
func getKindClusterName(kindConfigFilePath string) (name string, err error) {
- data, err := ioutil.ReadFile(kindConfigFilePath)
+ data, err := os.ReadFile(kindConfigFilePath)
if err != nil {
return "", err
}
diff --git a/internal/components/verifier/funcs.go b/internal/components/verifier/funcs.go
index af8a0ea..86a780b 100644
--- a/internal/components/verifier/funcs.go
+++ b/internal/components/verifier/funcs.go
@@ -56,16 +56,16 @@ func notEmpty(s string) string {
if len(strings.TrimSpace(s)) > 0 {
return s
}
- return fmt.Sprintf(`<"%s" is empty, wanted is not empty>`, s)
+ return fmt.Sprintf("<%q is empty, wanted is not empty>", s)
}
func regexpMatch(s, pattern string) string {
matched, err := regexp.MatchString(pattern, s)
if err != nil {
- return fmt.Sprintf(`<"%s">`, err)
+ return fmt.Sprintf(`<%q>`, err)
}
if !matched {
- return fmt.Sprintf(`<"%s" does not match the pattern %s">`, s, pattern)
+ return fmt.Sprintf("<%q does not match the pattern %q>", s, pattern)
}
return s
}
diff --git a/internal/config/globalConfig.go b/internal/config/globalConfig.go
index ff50c9c..13899af 100644
--- a/internal/config/globalConfig.go
+++ b/internal/config/globalConfig.go
@@ -20,7 +20,6 @@ package config
import (
"fmt"
- "io/ioutil"
"os"
"path/filepath"
@@ -53,7 +52,7 @@ func ReadGlobalConfigFile() {
return
}
- data, err := ioutil.ReadFile(util.CfgFile)
+ data, err := os.ReadFile(util.CfgFile)
if err != nil {
GlobalConfig.Error = fmt.Errorf("read e2e config file %s error: %s", util.CfgFile, err)
return
@@ -115,7 +114,7 @@ func convertSingleCase(verifyCase VerifyCase, baseFile string) ([]VerifyCase, er
return nil, fmt.Errorf("reuse case config file %s not exist", includePath)
}
- data, err := ioutil.ReadFile(includePath)
+ data, err := os.ReadFile(includePath)
if err != nil {
return nil, fmt.Errorf("reuse case config file %s error: %s", includePath, err)
}
diff --git a/internal/util/k8s.go b/internal/util/k8s.go
index 2da0496..6213b07 100644
--- a/internal/util/k8s.go
+++ b/internal/util/k8s.go
@@ -21,7 +21,6 @@ package util
import (
"bytes"
"context"
- "io/ioutil"
"os"
"path/filepath"
"strings"
@@ -68,7 +67,7 @@ func ConnectToK8sCluster(kubeConfigPath string) (info *K8sClusterInfo, err error
return nil, err
}
- kubeConfigYaml, err := ioutil.ReadFile(kubeConfigPath)
+ kubeConfigYaml, err := os.ReadFile(kubeConfigPath)
if err != nil {
return nil, err
}
@@ -168,7 +167,7 @@ func GetManifests(manifests string) (files []string, err error) {
// OperateManifest operates manifest in k8s cluster which kind created.
func OperateManifest(c *kubernetes.Clientset, dc dynamic.Interface, manifest string, operation apiv1.Operation) error {
- b, err := ioutil.ReadFile(manifest)
+ b, err := os.ReadFile(manifest)
if err != nil {
return err
}
diff --git a/internal/util/utils.go b/internal/util/utils.go
index 3d4146f..a182ed8 100644
--- a/internal/util/utils.go
+++ b/internal/util/utils.go
@@ -22,7 +22,6 @@ import (
"bytes"
_ "embed"
"errors"
- "io/ioutil"
"os"
"os/exec"
"path/filepath"
@@ -44,7 +43,7 @@ func PathExist(_path string) bool {
// ReadFileContent reads the file content.
func ReadFileContent(filename string) (string, error) {
if PathExist(filename) {
- content, err := ioutil.ReadFile(filename)
+ content, err := os.ReadFile(filename)
if err != nil {
return "", err
}
@@ -102,7 +101,7 @@ func hookScript() (string, error) {
}
func ExportEnvVars(envFile string) {
- b, err := ioutil.ReadFile(envFile)
+ b, err := os.ReadFile(envFile)
if err != nil {
logger.Log.Warnf("failed to export environment variables, %v", err)
return