Skip to content

Commit 4568ab5

Browse files
authored
Merge pull request #6 from christopherChenYW/master
add setup debug session for github action if fail
2 parents 0fa4a71 + 1df038d commit 4568ab5

File tree

3 files changed

+36
-6
lines changed

3 files changed

+36
-6
lines changed

.github/workflows/unittest.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,13 @@ jobs:
3333
- name: Run Go test
3434
run: |
3535
make test ENVTEST_K8S_VERSION=${{ matrix.kubernetes-version }}
36+
37+
- name: Setup Debug Session
38+
uses: mxschmitt/action-tmate@v3
39+
timeout-minutes: 15
40+
if: failure()
41+
with:
42+
detached: false
3643

3744
- name: Coveralls report
3845
uses: shogo82148/actions-goveralls@v1

pkg/controllers/builder/configmap_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ import (
1414
)
1515

1616
func TestBuildHadoopConfigMap(t *testing.T) {
17-
mgr := testutil.NewCtrlManager()
17+
mgr, envTest := testutil.NewCtrlManager(t)
18+
defer envTest.Stop()
19+
1820
builder := &ConfigMapBuilder{}
1921
builder.SetupWithManager(mgr, mgr.GetEventRecorderFor("test"))
2022

@@ -66,3 +68,4 @@ func TestBuildHadoopConfigMap(t *testing.T) {
6668
assert.Greater(t, len(yarnSite.Properties), 0)
6769
assert.Contains(t, yarnSite.Properties, Property{Name: "yarn.nodemanager.resource.cpu-vcores", Value: "1"})
6870
}
71+

pkg/util/testutil/builder.go

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@ import (
55
"k8s.io/apimachinery/pkg/runtime"
66
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
77
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
8-
ctrl "sigs.k8s.io/controller-runtime"
8+
"k8s.io/client-go/rest"
9+
"sigs.k8s.io/controller-runtime/pkg/client"
10+
"sigs.k8s.io/controller-runtime/pkg/client/fake"
11+
"sigs.k8s.io/controller-runtime/pkg/envtest"
912
"sigs.k8s.io/controller-runtime/pkg/manager"
13+
"testing"
1014
)
1115

1216
var (
@@ -20,9 +24,25 @@ func init() {
2024
//+kubebuilder:scaffold:scheme
2125
}
2226

23-
func NewCtrlManager() manager.Manager {
24-
mgr, _ := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
25-
Scheme: scheme,
27+
func NewCtrlManager(t *testing.T) (manager.Manager, *envtest.Environment) {
28+
envTest := &envtest.Environment{}
29+
cfg, err := envTest.Start()
30+
if err != nil {
31+
t.Fatalf("failed to start envtest: %v", err)
32+
}
33+
defer envTest.Stop()
34+
35+
// 使用 cfg 创建一个假的 manager.Manager 对象
36+
mgr, err := manager.New(cfg, manager.Options{
37+
NewClient: func(config *rest.Config, options client.Options) (client.Client, error) {
38+
// 返回一个假的客户端
39+
return fake.NewClientBuilder().Build(), nil
40+
},
2641
})
27-
return mgr
42+
43+
if err != nil {
44+
t.Fatalf("failed to start envtest: %v", err)
45+
}
46+
return mgr, envTest
2847
}
48+

0 commit comments

Comments
 (0)