Skip to content

Commit

Permalink
Add NGF build information to test results
Browse files Browse the repository at this point in the history
Problem: We don't add the commit that was tested to the test results and
we don't have a way to confirm that the correct version was tested.

Solution: Add build info to the tests results
  • Loading branch information
lucacome committed Aug 8, 2024
1 parent 695354f commit ca349a6
Show file tree
Hide file tree
Showing 13 changed files with 48 additions and 14 deletions.
3 changes: 2 additions & 1 deletion tests/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,8 @@ stop-longevity-test: nfr-test ## Stop the longevity test and collects results

.PHONY: .vm-nfr-test
.vm-nfr-test: ## Runs the NFR tests on the GCP VM (called by `nfr-test`)
go run github.com/onsi/ginkgo/v2/ginkgo --randomize-all --randomize-suites --keep-going --fail-on-pending --trace -r -v --force-newlines $(ifeq $(CI),true,--github-output) \
go run github.com/onsi/ginkgo/v2/ginkgo --randomize-all --randomize-suites --keep-going --fail-on-pending --trace -r -v -buildvcs --force-newlines $(ifeq $(CI),true,--github-output) \
go run github.com/onsi/ginkgo/v2/ginkgo --randomize-all --randomize-suites --keep-going --fail-on-pending --trace -r -v \
--label-filter "nfr" $(GINKGO_FLAGS) --timeout 3h ./suite -- --gateway-api-version=$(GW_API_VERSION) \
--gateway-api-prev-version=$(GW_API_PREV_VERSION) --image-tag=$(TAG) --version-under-test=$(NGF_VERSION) \
--plus-enabled=$(PLUS_ENABLED) --ngf-image-repo=$(PREFIX) --nginx-image-repo=$(NGINX_PREFIX) --nginx-plus-image-repo=$(NGINX_PLUS_PREFIX) \
Expand Down
28 changes: 28 additions & 0 deletions tests/framework/info.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ package framework

import (
"fmt"
"runtime/debug"

core "k8s.io/api/core/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
)

// GetLogs returns the logs for all containers in all pods for a release.
func GetLogs(rm ResourceManager, namespace string, releaseName string) string {
var returnLogs string
pods, err := rm.GetPods(namespace, client.MatchingLabels{
Expand All @@ -32,6 +34,7 @@ func GetLogs(rm ResourceManager, namespace string, releaseName string) string {
return returnLogs
}

// GetEvents returns the events for a namespace.
func GetEvents(rm ResourceManager, namespace string) string {
var returnEvents string
events, err := rm.GetEvents(namespace)
Expand All @@ -53,3 +56,28 @@ func GetEvents(rm ResourceManager, namespace string) string {
}
return returnEvents
}

// GetBuildInfo returns the build information.
func GetBuildInfo() (commitHash string, commitTime string, dirtyBuild string) {
commitHash = "unknown"
commitTime = "unknown"
dirtyBuild = "unknown"

info, ok := debug.ReadBuildInfo()
if !ok {
return
}

for _, kv := range info.Settings {
switch kv.Key {
case "vcs.revision":
commitHash = kv.Value
case "vcs.time":
commitTime = kv.Value
case "vcs.modified":
dirtyBuild = kv.Value
}
}

return
}
9 changes: 6 additions & 3 deletions tests/framework/results.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,13 @@ func WriteSystemInfoToFile(file *os.File, ci ClusterInfo, plus bool) error {
if ci.IsGKE {
clusterType = "GKE"
}

commit, date, dirty := GetBuildInfo()

//nolint:lll
text := fmt.Sprintf(
//nolint:lll
"# Results\n\n## Test environment\n\nNGINX Plus: %v\n\n%s Cluster:\n\n- Node count: %d\n- k8s version: %s\n- vCPUs per node: %d\n- RAM per node: %s\n- Max pods per node: %d\n",
plus, clusterType, ci.NodeCount, ci.K8sVersion, ci.CPUCountPerNode, ci.MemoryPerNode, ci.MaxPodsPerNode,
"# Results\n\n## Test environment\n\nNGINX Plus: %v\n\nNGINX Gateway Fabric:\n\n- Commit: %s\n- Date: %s\n- Dirty: %v\n\n%s Cluster:\n\n- Node count: %d\n- k8s version: %s\n- vCPUs per node: %d\n- RAM per node: %s\n- Max pods per node: %d\n",
plus, commit, date, dirty, clusterType, ci.NodeCount, ci.K8sVersion, ci.CPUCountPerNode, ci.MemoryPerNode, ci.MaxPodsPerNode,
)
if _, err := fmt.Fprint(file, text); err != nil {
return err
Expand Down
2 changes: 1 addition & 1 deletion tests/suite/client_settings_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package suite
package main

import (
"bytes"
Expand Down
2 changes: 1 addition & 1 deletion tests/suite/dataplane_perf_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package suite
package main

import (
"fmt"
Expand Down
2 changes: 1 addition & 1 deletion tests/suite/graceful_recovery_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package suite
package main

import (
"context"
Expand Down
2 changes: 1 addition & 1 deletion tests/suite/longevity_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package suite
package main

import (
"fmt"
Expand Down
2 changes: 1 addition & 1 deletion tests/suite/sample_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package suite
package main

import (
"fmt"
Expand Down
2 changes: 1 addition & 1 deletion tests/suite/scale_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package suite
package main

import (
"bytes"
Expand Down
4 changes: 3 additions & 1 deletion tests/suite/system_suite_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package suite
// This package needs to be named main to get build info
// because of https://github.com/golang/go/issues/33976
package main

import (
"context"
Expand Down
2 changes: 1 addition & 1 deletion tests/suite/telemetry_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package suite
package main

import (
"fmt"
Expand Down
2 changes: 1 addition & 1 deletion tests/suite/tracing_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package suite
package main

import (
"context"
Expand Down
2 changes: 1 addition & 1 deletion tests/suite/upgrade_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package suite
package main

import (
"bytes"
Expand Down

0 comments on commit ca349a6

Please sign in to comment.