feat: register extra information during build (#390)
* feat: register extra information during build * update github action go version * update action
This commit is contained in:
parent
ba7372a236
commit
7b466bc7b4
4
.github/workflows/e2e-linux.yml
vendored
4
.github/workflows/e2e-linux.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
|||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: 1.16.x
|
go-version: 1.22.x
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: Go build
|
- name: Go build
|
||||||
@ -33,5 +33,5 @@ jobs:
|
|||||||
./goc build -o ./gocc .
|
./goc build -o ./gocc .
|
||||||
- name: run e2e test
|
- name: run e2e test
|
||||||
run: |
|
run: |
|
||||||
go get github.com/onsi/ginkgo/ginkgo
|
go install github.com/onsi/ginkgo/ginkgo
|
||||||
make e2e
|
make e2e
|
4
.github/workflows/e2e-wins.yml
vendored
4
.github/workflows/e2e-wins.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
|||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: 1.16.x
|
go-version: 1.22.x
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: Go build
|
- name: Go build
|
||||||
@ -33,5 +33,5 @@ jobs:
|
|||||||
.\goc.exe build -o gocc .
|
.\goc.exe build -o gocc .
|
||||||
- name: run e2e test
|
- name: run e2e test
|
||||||
run: |
|
run: |
|
||||||
go get github.com/onsi/ginkgo/ginkgo
|
go install github.com/onsi/ginkgo/ginkgo
|
||||||
ginkgo tests/e2e/...
|
ginkgo tests/e2e/...
|
8
.github/workflows/release.yml
vendored
8
.github/workflows/release.yml
vendored
@ -11,7 +11,7 @@ jobs:
|
|||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: 1.16.x
|
go-version: 1.22.x
|
||||||
- name: compile and release
|
- name: compile and release
|
||||||
run: |
|
run: |
|
||||||
./hack/release.sh
|
./hack/release.sh
|
||||||
@ -28,7 +28,7 @@ jobs:
|
|||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: 1.16.x
|
go-version: 1.22.x
|
||||||
- name: compile and release
|
- name: compile and release
|
||||||
run: |
|
run: |
|
||||||
./hack/release.sh
|
./hack/release.sh
|
||||||
@ -45,7 +45,7 @@ jobs:
|
|||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: 1.16.x
|
go-version: 1.22.x
|
||||||
- name: compile and release
|
- name: compile and release
|
||||||
run: |
|
run: |
|
||||||
./hack/release.sh
|
./hack/release.sh
|
||||||
@ -62,7 +62,7 @@ jobs:
|
|||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: 1.16.x
|
go-version: 1.22.x
|
||||||
- name: compile and release
|
- name: compile and release
|
||||||
run: |
|
run: |
|
||||||
./hack/release.sh
|
./hack/release.sh
|
||||||
|
2
.github/workflows/style_check.yml
vendored
2
.github/workflows/style_check.yml
vendored
@ -15,7 +15,7 @@ jobs:
|
|||||||
name: vet and gofmt
|
name: vet and gofmt
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version: [1.16.x]
|
go-version: [1.22.x]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
|
2
.github/workflows/ut-check-win.yml
vendored
2
.github/workflows/ut-check-win.yml
vendored
@ -15,7 +15,7 @@ jobs:
|
|||||||
name: go test on windows
|
name: go test on windows
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version: [1.16.x]
|
go-version: [1.22.x]
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
|
2
.github/workflows/ut-check.yml
vendored
2
.github/workflows/ut-check.yml
vendored
@ -15,7 +15,7 @@ jobs:
|
|||||||
name: go test on linux
|
name: go test on linux
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version: [1.16.x]
|
go-version: [1.22.x]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
|
@ -26,13 +26,15 @@ var buildCmd = &cobra.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
gocmode string
|
gocmode string
|
||||||
gochost string
|
gochost string
|
||||||
|
gocextra string
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
buildCmd.Flags().StringVarP(&gocmode, "gocmode", "", "count", "coverage mode: set, count, atomic, watch")
|
buildCmd.Flags().StringVarP(&gocmode, "gocmode", "", "count", "coverage mode: set, count, atomic, watch")
|
||||||
buildCmd.Flags().StringVarP(&gochost, "gochost", "", "127.0.0.1:7777", "specify the host of the goc sever")
|
buildCmd.Flags().StringVarP(&gochost, "gochost", "", "127.0.0.1:7777", "specify the host of the goc sever")
|
||||||
|
buildCmd.Flags().StringVarP(&gocextra, "gocextra", "", "", "specify the extra information injected into the build")
|
||||||
rootCmd.AddCommand(buildCmd)
|
rootCmd.AddCommand(buildCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,6 +49,7 @@ func buildAction(cmd *cobra.Command, args []string) {
|
|||||||
build.WithArgs(args),
|
build.WithArgs(args),
|
||||||
build.WithBuild(),
|
build.WithBuild(),
|
||||||
build.WithDebug(globalDebug),
|
build.WithDebug(globalDebug),
|
||||||
|
build.WithExtra(gocextra),
|
||||||
)
|
)
|
||||||
b.Build()
|
b.Build()
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ var installCmd = &cobra.Command{
|
|||||||
func init() {
|
func init() {
|
||||||
installCmd.Flags().StringVarP(&gocmode, "gocmode", "", "count", "coverage mode: set, count, atomic, watch")
|
installCmd.Flags().StringVarP(&gocmode, "gocmode", "", "count", "coverage mode: set, count, atomic, watch")
|
||||||
installCmd.Flags().StringVarP(&gochost, "gochost", "", "127.0.0.1:7777", "specify the host of the goc sever")
|
installCmd.Flags().StringVarP(&gochost, "gochost", "", "127.0.0.1:7777", "specify the host of the goc sever")
|
||||||
|
installCmd.Flags().StringVarP(&gocextra, "gocextra", "", "", "specify the extra information injected into the build")
|
||||||
rootCmd.AddCommand(installCmd)
|
rootCmd.AddCommand(installCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -42,6 +43,7 @@ func installAction(cmd *cobra.Command, args []string) {
|
|||||||
build.WithArgs(args),
|
build.WithArgs(args),
|
||||||
build.WithInstall(),
|
build.WithInstall(),
|
||||||
build.WithDebug(globalDebug),
|
build.WithDebug(globalDebug),
|
||||||
|
build.WithExtra(gocextra),
|
||||||
)
|
)
|
||||||
b.Install()
|
b.Install()
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ var (
|
|||||||
token string
|
token string
|
||||||
id string
|
id string
|
||||||
cond = sync.NewCond(&sync.Mutex{})
|
cond = sync.NewCond(&sync.Mutex{})
|
||||||
register_extra = os.Getenv("GOC_REGISTER_EXTRA")
|
register_extra = "{{.Extra}}"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -55,6 +55,11 @@ func init() {
|
|||||||
host = host_env
|
host = host_env
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// init extra information
|
||||||
|
if os.Getenv("GOC_REGISTER_EXTRA") != "" {
|
||||||
|
register_extra = os.Getenv("GOC_REGISTER_EXTRA")
|
||||||
|
}
|
||||||
|
|
||||||
var dialer = websocket.DefaultDialer
|
var dialer = websocket.DefaultDialer
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
|
@ -31,6 +31,7 @@ type Build struct {
|
|||||||
Debug bool
|
Debug bool
|
||||||
Host string
|
Host string
|
||||||
Mode string // cover mode
|
Mode string // cover mode
|
||||||
|
Extra string
|
||||||
|
|
||||||
GOPATH string
|
GOPATH string
|
||||||
GOBIN string
|
GOBIN string
|
||||||
@ -53,7 +54,6 @@ type Build struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewBuild creates a Build struct
|
// NewBuild creates a Build struct
|
||||||
//
|
|
||||||
func NewBuild(opts ...gocOption) *Build {
|
func NewBuild(opts ...gocOption) *Build {
|
||||||
b := &Build{}
|
b := &Build{}
|
||||||
|
|
||||||
|
@ -14,6 +14,8 @@
|
|||||||
package build
|
package build
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -60,3 +62,9 @@ func WithDebug(enable bool) gocOption {
|
|||||||
b.Debug = enable
|
b.Debug = enable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func WithExtra(extra string) gocOption {
|
||||||
|
return func(b *Build) {
|
||||||
|
b.Extra = strings.TrimSpace(extra)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -127,14 +127,14 @@ func (b *Build) getPkgTmpDir(pkgDir string) string {
|
|||||||
|
|
||||||
// injectGocAgent inject handlers like following
|
// injectGocAgent inject handlers like following
|
||||||
//
|
//
|
||||||
// - xxx.go
|
// - xxx.go
|
||||||
// - yyy_package
|
// - yyy_package
|
||||||
// - main.go
|
// - main.go
|
||||||
// - goc-cover-agent-apis-auto-generated-11111-22222-bridge.go
|
// - goc-cover-agent-apis-auto-generated-11111-22222-bridge.go
|
||||||
// - goc-cover-agent-apis-auto-generated-11111-22222-package
|
// - goc-cover-agent-apis-auto-generated-11111-22222-package
|
||||||
// |
|
// |
|
||||||
// -- rpcagent.go
|
// -- rpcagent.go
|
||||||
// -- watchagent.go
|
// -- watchagent.go
|
||||||
//
|
//
|
||||||
// 11111_22222_bridge.go 仅仅用于引用 11111_22222_package, where package contains ws agent main logic.
|
// 11111_22222_bridge.go 仅仅用于引用 11111_22222_package, where package contains ws agent main logic.
|
||||||
// 使用 bridge.go 文件是为了避免插桩逻辑中的变量名污染 main 包
|
// 使用 bridge.go 文件是为了避免插桩逻辑中的变量名污染 main 包
|
||||||
@ -195,12 +195,14 @@ func (b *Build) injectGocAgent(where string, covers []*PackageCover) {
|
|||||||
Package string
|
Package string
|
||||||
Host string
|
Host string
|
||||||
Mode string
|
Mode string
|
||||||
|
Extra string
|
||||||
}{
|
}{
|
||||||
Covers: covers,
|
Covers: covers,
|
||||||
GlobalCoverVarImportPath: b.GlobalCoverVarImportPath,
|
GlobalCoverVarImportPath: b.GlobalCoverVarImportPath,
|
||||||
Package: injectPkgName,
|
Package: injectPkgName,
|
||||||
Host: b.Host,
|
Host: b.Host,
|
||||||
Mode: _coverMode,
|
Mode: _coverMode,
|
||||||
|
Extra: b.Extra,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := coverMainTmpl.Execute(f2, tmplData); err != nil {
|
if err := coverMainTmpl.Execute(f2, tmplData); err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user