From 210964d232a23286337e0c57990747b34ac2c598 Mon Sep 17 00:00:00 2001 From: Yusuke Kuoka Date: Tue, 19 Nov 2024 07:04:12 +0000 Subject: [PATCH 1/2] Reorganize tests into three groups --- .github/workflows/test.yaml | 46 +++++++++++++++---- Makefile | 12 +++-- cmd/cert-manager/cert-manager_test.go | 2 + .../cluster_autoscaler_test.go | 2 + cmd/cluster-autoscaler/karpenter_test.go | 2 + cmd/datadog-agent/datadog-agent_test.go | 2 + cmd/fluent/fluent_test.go | 2 + cmd/ingress/ingress_test.go | 2 + 8 files changed, 56 insertions(+), 14 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 5a4deee..e33d33f 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -14,16 +14,28 @@ concurrency: jobs: test: - environment: test + runs-on: ubuntu-latest + timeout-minutes: 6 + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.21.3' + check-latest: true + - name: Run tests + run: make test + kindtest: strategy: matrix: kind_image: - "kindest/node:v1.29.8@sha256:d46b7aa29567e93b27f7531d258c372e829d7224b25e3fc6ffdefed12476d3aa" - "kindest/node:v1.30.4@sha256:976ea815844d5fa93be213437e3ff5754cd599b040946b5cca43ca45c2047114" runs-on: ubuntu-latest - # Have enough timeout for `make e2e` - # which requires up to 45 minutes to run. - timeout-minutes: 55 + timeout-minutes: 20 steps: - name: Checkout uses: actions/checkout@v4 @@ -36,14 +48,28 @@ jobs: check-latest: true - name: Install cloud-provider-kind run: make cloud-provider-kind - - name: Run tests - run: make test - # In near future, we might want to run this - # only when triggered manually or on a schedule. - - name: Run E2E tests - run: make e2e + - name: Run E2E tests on kind + run: make e2e/kindtest env: KIND_IMAGE: ${{ matrix.kind_image }} + ekstest: + environment: test + runs-on: ubuntu-latest + # Have enough timeout for `make e2e` + # which requires up to 45 minutes to run. + timeout-minutes: 55 + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.21.3' + check-latest: true + - name: Run E2E tests on EKS + run: make e2e/ekstest golangci: name: lint runs-on: ubuntu-latest diff --git a/Makefile b/Makefile index 2ff7fb1..3af8069 100644 --- a/Makefile +++ b/Makefile @@ -30,11 +30,15 @@ lint: .PHONY: test test: - go test -short -timeout 6m -v ./... + go test -timeout 6m -v ./util/... ./config/... -.PHONY: e2e -e2e: - go test -timeout 45m -v ./... +.PHONY: e2e/kindtest +e2e/kindtest: + go test -timeout 20m -v ./cmd/... + +.PHONY: e2e/ekstest +e2e/ekstest: + go test -timeout 55m -v ./cmd/... -tags=ekstest # This will produce following images for testing locally: # - examplecom/kibertas:canary-arm64 diff --git a/cmd/cert-manager/cert-manager_test.go b/cmd/cert-manager/cert-manager_test.go index 3828baa..20aaae8 100644 --- a/cmd/cert-manager/cert-manager_test.go +++ b/cmd/cert-manager/cert-manager_test.go @@ -1,3 +1,5 @@ +//go:build !ekstest + package certmanager import ( diff --git a/cmd/cluster-autoscaler/cluster_autoscaler_test.go b/cmd/cluster-autoscaler/cluster_autoscaler_test.go index 6d29a23..c55ba96 100644 --- a/cmd/cluster-autoscaler/cluster_autoscaler_test.go +++ b/cmd/cluster-autoscaler/cluster_autoscaler_test.go @@ -1,3 +1,5 @@ +//go:build ekstest + package clusterautoscaler import ( diff --git a/cmd/cluster-autoscaler/karpenter_test.go b/cmd/cluster-autoscaler/karpenter_test.go index 153c4e4..0c0a08c 100644 --- a/cmd/cluster-autoscaler/karpenter_test.go +++ b/cmd/cluster-autoscaler/karpenter_test.go @@ -1,3 +1,5 @@ +//go:build ekstest + package clusterautoscaler import ( diff --git a/cmd/datadog-agent/datadog-agent_test.go b/cmd/datadog-agent/datadog-agent_test.go index d694568..008e98e 100644 --- a/cmd/datadog-agent/datadog-agent_test.go +++ b/cmd/datadog-agent/datadog-agent_test.go @@ -1,3 +1,5 @@ +//go:build !ekstest + package datadogagent import ( diff --git a/cmd/fluent/fluent_test.go b/cmd/fluent/fluent_test.go index 282478c..af5a7fa 100644 --- a/cmd/fluent/fluent_test.go +++ b/cmd/fluent/fluent_test.go @@ -1,3 +1,5 @@ +//go:build ekstest + package fluent import ( diff --git a/cmd/ingress/ingress_test.go b/cmd/ingress/ingress_test.go index 965dd30..5ebe6da 100644 --- a/cmd/ingress/ingress_test.go +++ b/cmd/ingress/ingress_test.go @@ -1,3 +1,5 @@ +//go:build !ekstest + package ingress import ( From defeb7bc98f27e0cf34da8f306791ce07a112f4f Mon Sep 17 00:00:00 2001 From: Yusuke Kuoka Date: Tue, 19 Nov 2024 07:13:48 +0000 Subject: [PATCH 2/2] Protect all the tests using environment --- .github/workflows/test.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index e33d33f..c573cb7 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -14,6 +14,7 @@ concurrency: jobs: test: + environment: test runs-on: ubuntu-latest timeout-minutes: 6 steps: @@ -29,6 +30,7 @@ jobs: - name: Run tests run: make test kindtest: + environment: test strategy: matrix: kind_image: