From f7a5cc877be0e3cb6261b926b629e3d8e422b71e Mon Sep 17 00:00:00 2001 From: debugtalk Date: Thu, 6 Jan 2022 20:54:07 +0800 Subject: [PATCH 01/11] change: remove extra log --- hrp/cmd/root.go | 1 - 1 file changed, 1 deletion(-) diff --git a/hrp/cmd/root.go b/hrp/cmd/root.go index db06388e..0b60831a 100644 --- a/hrp/cmd/root.go +++ b/hrp/cmd/root.go @@ -51,7 +51,6 @@ func Execute() { RootCmd.PersistentFlags().BoolVar(&logJSON, "log-json", false, "set log to json format") if err := RootCmd.Execute(); err != nil { - log.Error().Err(err).Msg("Failed to execute root command") os.Exit(1) } } From 86d060481865c3e4b5cd8ba0560d5a42c2d9e2fc Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 7 Jan 2022 09:49:55 +0800 Subject: [PATCH 02/11] change: add GA event for loading go plugin --- plugin.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugin.go b/plugin.go index 005dbda8..6a5cf1f7 100644 --- a/plugin.go +++ b/plugin.go @@ -9,6 +9,7 @@ import ( "github.com/rs/zerolog/log" "github.com/httprunner/hrp/internal/builtin" + "github.com/httprunner/hrp/internal/ga" ) func (p *parser) loadPlugin(path string) error { @@ -33,6 +34,12 @@ func (p *parser) loadPlugin(path string) error { return nil } + // report event for loading go plugin + go ga.SendEvent(ga.EventTracking{ + Category: "LoadGoPlugin", + Action: "plugin.Open", + }) + // load plugin plugins, err := plugin.Open(pluginPath) if err != nil { From 94b049a46b4cff4a79118177ffb6e41bf3b14371 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 7 Jan 2022 10:05:46 +0800 Subject: [PATCH 03/11] change: get GA Tracking ID from env --- internal/ga/init.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/internal/ga/init.go b/internal/ga/init.go index b759398d..4f9c83c1 100644 --- a/internal/ga/init.go +++ b/internal/ga/init.go @@ -1,17 +1,16 @@ package ga import ( + "os" + "github.com/denisbrodbeck/machineid" "github.com/google/uuid" ) -const ( - trackingID = "UA-114587036-1" // Tracking ID for Google Analytics -) - var gaClient *GAClient func init() { + trackingID := os.Getenv("GA_TRACKING_ID") // Tracking ID for Google Analytics clientID, err := machineid.ProtectedID("hrp") if err != nil { nodeUUID, _ := uuid.NewUUID() From 1e2d358e59287defb330dee0a5803eb31d21d4a6 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 7 Jan 2022 10:12:35 +0800 Subject: [PATCH 04/11] change: update docs --- docs/cmd/hrp.md | 2 +- docs/cmd/hrp_boom.md | 2 +- docs/cmd/hrp_har2case.md | 2 +- docs/cmd/hrp_run.md | 2 +- internal/ga/init.go | 2 ++ 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/cmd/hrp.md b/docs/cmd/hrp.md index af644700..cb05f56f 100644 --- a/docs/cmd/hrp.md +++ b/docs/cmd/hrp.md @@ -32,4 +32,4 @@ Copyright 2021 debugtalk * [hrp har2case](hrp_har2case.md) - Convert HAR to json/yaml testcase files * [hrp run](hrp_run.md) - run API test -###### Auto generated by spf13/cobra on 6-Jan-2022 +###### Auto generated by spf13/cobra on 7-Jan-2022 diff --git a/docs/cmd/hrp_boom.md b/docs/cmd/hrp_boom.md index 5690fc09..f81e3723 100644 --- a/docs/cmd/hrp_boom.md +++ b/docs/cmd/hrp_boom.md @@ -38,4 +38,4 @@ hrp boom [flags] * [hrp](hrp.md) - One-stop solution for HTTP(S) testing. -###### Auto generated by spf13/cobra on 6-Jan-2022 +###### Auto generated by spf13/cobra on 7-Jan-2022 diff --git a/docs/cmd/hrp_har2case.md b/docs/cmd/hrp_har2case.md index 144caa8c..da27b051 100644 --- a/docs/cmd/hrp_har2case.md +++ b/docs/cmd/hrp_har2case.md @@ -23,4 +23,4 @@ hrp har2case harPath... [flags] * [hrp](hrp.md) - One-stop solution for HTTP(S) testing. -###### Auto generated by spf13/cobra on 6-Jan-2022 +###### Auto generated by spf13/cobra on 7-Jan-2022 diff --git a/docs/cmd/hrp_run.md b/docs/cmd/hrp_run.md index a0f5d0db..5564d2e4 100644 --- a/docs/cmd/hrp_run.md +++ b/docs/cmd/hrp_run.md @@ -31,4 +31,4 @@ hrp run path... [flags] * [hrp](hrp.md) - One-stop solution for HTTP(S) testing. -###### Auto generated by spf13/cobra on 6-Jan-2022 +###### Auto generated by spf13/cobra on 7-Jan-2022 diff --git a/internal/ga/init.go b/internal/ga/init.go index 4f9c83c1..5a66da72 100644 --- a/internal/ga/init.go +++ b/internal/ga/init.go @@ -1,6 +1,7 @@ package ga import ( + "fmt" "os" "github.com/denisbrodbeck/machineid" @@ -11,6 +12,7 @@ var gaClient *GAClient func init() { trackingID := os.Getenv("GA_TRACKING_ID") // Tracking ID for Google Analytics + fmt.Println("GA_TRACKING_ID:", trackingID) clientID, err := machineid.ProtectedID("hrp") if err != nil { nodeUUID, _ := uuid.NewUUID() From 4befd07f25de8eff7206fd7cd005bf2f5ca6cc9c Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 7 Jan 2022 10:38:18 +0800 Subject: [PATCH 05/11] fix: load GA_TRACKING_ID from github env --- .github/workflows/unittest.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index ece0b0fb..d0680739 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -28,6 +28,8 @@ jobs: - name: Checkout code uses: actions/checkout@v2 - name: Run coverage + env: + GA_TRACKING_ID: ${{ secrets.GA_TRACKING_ID }} run: go test -coverprofile="cover.out" -covermode=atomic -race ./... - name: Upload coverage to Codecov uses: codecov/codecov-action@v2 From a9f17fb7b6e60b92659602fa9110480ae3bcb591 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 7 Jan 2022 10:43:28 +0800 Subject: [PATCH 06/11] fix: load GA_TRACKING_ID from github env for release --- .github/workflows/release.yml | 2 ++ internal/ga/init.go | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0bc75d41..f4f12fde 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,6 +21,8 @@ jobs: uses: actions/checkout@v2 - name: Release hrp cli binaries uses: wangyoucao577/go-release-action@v1.22 + env: + GA_TRACKING_ID: ${{ secrets.GA_TRACKING_ID }} with: github_token: ${{ secrets.GITHUB_TOKEN }} goos: ${{ matrix.goos }} diff --git a/internal/ga/init.go b/internal/ga/init.go index 5a66da72..4f9c83c1 100644 --- a/internal/ga/init.go +++ b/internal/ga/init.go @@ -1,7 +1,6 @@ package ga import ( - "fmt" "os" "github.com/denisbrodbeck/machineid" @@ -12,7 +11,6 @@ var gaClient *GAClient func init() { trackingID := os.Getenv("GA_TRACKING_ID") // Tracking ID for Google Analytics - fmt.Println("GA_TRACKING_ID:", trackingID) clientID, err := machineid.ProtectedID("hrp") if err != nil { nodeUUID, _ := uuid.NewUUID() From 005a5e5fb80962401884b94062bed08fa1d616f1 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 7 Jan 2022 15:38:34 +0800 Subject: [PATCH 07/11] change: RunE => Run --- hrp/cmd/run.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hrp/cmd/run.go b/hrp/cmd/run.go index 93423094..29aa2486 100644 --- a/hrp/cmd/run.go +++ b/hrp/cmd/run.go @@ -1,6 +1,8 @@ package cmd import ( + "os" + "github.com/spf13/cobra" "github.com/httprunner/hrp" @@ -18,7 +20,7 @@ var runCmd = &cobra.Command{ PreRun: func(cmd *cobra.Command, args []string) { setLogLevel(logLevel) }, - RunE: func(cmd *cobra.Command, args []string) error { + Run: func(cmd *cobra.Command, args []string) { var paths []hrp.ITestCase for _, arg := range args { paths = append(paths, &hrp.TestCasePath{Path: arg}) @@ -29,7 +31,10 @@ var runCmd = &cobra.Command{ if proxyUrl != "" { runner.SetProxyUrl(proxyUrl) } - return runner.Run(paths...) + err := runner.Run(paths...) + if err != nil { + os.Exit(1) + } }, } From 765c45cb14e7889fa06ab5a91fc4293d3079a195 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 7 Jan 2022 15:46:09 +0800 Subject: [PATCH 08/11] tmp: test release --- .github/workflows/release.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f4f12fde..6ba55eec 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,8 +1,11 @@ name: Release hrp cli binaries on: - release: - types: [created] + # release: + # types: [created] + push: + pull_request: + types: [synchronize] jobs: releases-matrix: From 3e94e1490a17408b96c2b93adfef2f856cff2028 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 7 Jan 2022 15:49:21 +0800 Subject: [PATCH 09/11] revert tmp --- .github/workflows/release.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6ba55eec..f4f12fde 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,11 +1,8 @@ name: Release hrp cli binaries on: - # release: - # types: [created] - push: - pull_request: - types: [synchronize] + release: + types: [created] jobs: releases-matrix: From 55688e3b6f4afbd644d94cd647d40923f4891a25 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 7 Jan 2022 17:55:00 +0800 Subject: [PATCH 10/11] feat: install hrp with one shell command --- docs/CHANGELOG.md | 1 + hrp/scripts/install.sh | 84 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 hrp/scripts/install.sh diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 7023b21f..d9ae7b20 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -3,6 +3,7 @@ ## v0.5.0 (2022-01-06) - feat: support creating and calling custom functions with [go plugin](https://pkg.go.dev/plugin) +- feat: install hrp with one shell command ## v0.4.0 (2022-01-05) diff --git a/hrp/scripts/install.sh b/hrp/scripts/install.sh new file mode 100644 index 00000000..038e0493 --- /dev/null +++ b/hrp/scripts/install.sh @@ -0,0 +1,84 @@ +#!/bin/bash +# install hrp with one shell command +# curl -sL https://raw.githubusercontent.com/httprunner/hrp/main/hrp/scripts/install.sh | bash + +set -e + +function echoError() { + echo -e "\033[31m✘ $1\033[0m" # red +} +export -f echoError + +function echoInfo() { + echo -e "\033[32m✔ $1\033[0m" # green +} +export -f echoInfo + +function echoWarn() { + echo -e "\033[33m! $1\033[0m" # yellow +} +export -f echoError + +function get_latest_version() { + # Release v0.4.0 · httprunner/hrp · GitHub + curl -sL https://github.com/httprunner/hrp/releases/latest | grep 'Release' | cut -d" " -f4 +} + +function get_arch() { + arch=$(uname -m) + if [ "$arch" == "x86_64" ]; then + arch="amd64" + fi + echo "$arch" +} + +function main() { + echoInfo "Detect target hrp package..." + version=$(get_latest_version) + echo "Latest version: $version" + os=$(uname -s) + echo "Current OS: $os" + arch=$(get_arch) + echo "Current ARCH: $arch" + pkg="hrp-$version-$os-$arch.tar.gz" + url="https://github.com/httprunner/hrp/releases/download/$version/$pkg" + echo "Selected package: $url" + echo + + echoInfo "Created temp dir..." + tmp_dir=$(mktemp -d -t hrp) + echo "$tmp_dir" + cd "$tmp_dir" + echo + + echoInfo "Downloading..." + curl -L $url -o "$pkg" + echo + + echoInfo "Extracting..." + tar -zxf "$pkg" + ls -lh + echo + + echoInfo "Installing..." + if hrp -v > /dev/null; then + echoWarn "$(hrp -v) exists, remove first !!!" + echo "$ rm -rf $(which hrp)" + rm -rf "$(which hrp)" + fi + + echo "chmod +x hrp && mv hrp /usr/local/bin/" + chmod +x hrp + mv hrp /usr/local/bin/ + echo + + echoInfo "Check installation..." + echo "$ which hrp" + which hrp + echo "$ hrp -v" + hrp -v + echo "$ hrp -h" + hrp -h +} + +main From 8a7a2d3cbb3b105972514ade36699aa5588db76b Mon Sep 17 00:00:00 2001 From: debugtalk <mail@debugtalk.com> Date: Fri, 7 Jan 2022 18:14:46 +0800 Subject: [PATCH 11/11] docs: update changelog --- docs/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index d9ae7b20..ae6f24e7 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -4,6 +4,7 @@ - feat: support creating and calling custom functions with [go plugin](https://pkg.go.dev/plugin) - feat: install hrp with one shell command +- feat: report GA event for loading go plugin ## v0.4.0 (2022-01-05)