From cf7d83bb13f1087aac4f0e01806bcf428bdf6e8c Mon Sep 17 00:00:00 2001 From: Avi Deitcher Date: Thu, 27 Oct 2022 10:03:16 +0300 Subject: [PATCH] add sharding option Signed-off-by: Avi Deitcher --- .github/workflows/ci.yml | 5 ++++- Makefile | 5 +++-- test/Makefile | 9 ++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e6ebfa0ae..5bb4821d5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -128,6 +128,9 @@ jobs: name: Packages Tests needs: [ build_packages, build ] runs-on: ubuntu-latest + strategy: + matrix: + shard: [1/10,2/10,3/10,4/10,5/10,6/10,7/10,8/10,9/10,10/10] steps: - name: Check out code uses: actions/checkout@v3 @@ -174,7 +177,7 @@ jobs: ${{ runner.os }}-linuxkit- - name: Run Tests - run: make test TEST_SUITE=linuxkit.packages + run: make test TEST_SUITE=linuxkit.packages TEST_SHARD=${{ matrix.shard }} test_kernel: name: Kernel Tests diff --git a/Makefile b/Makefile index 1f018648b..cdfdc1d2f 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ VERSION="v0.8+" # test suite to run, blank for all TEST_SUITE ?= +TEST_SHARD ?= GO_COMPILE=linuxkit/go-compile:7b1f5a37d2a93cd4a9aa2a87db264d8145944006 @@ -33,7 +34,7 @@ export VERSION GO_COMPILE GOOS GOARCH LOCAL_TARGET LINUXKIT default: linuxkit $(RTF) all: default -RTF_COMMIT=2351267f358ce6621c0c0d9a069f361268dba5fc +RTF_COMMIT=1b6277593346dea7e6039d528c4e8321a4bd9eaf RTF_CMD=github.com/linuxkit/rtf/cmd RTF_VERSION=0.0 $(RTF): tmp_rtf_bin.tar | bin @@ -81,7 +82,7 @@ sign: .PHONY: test test: - $(MAKE) -C test TEST_SUITE=$(TEST_SUITE) + $(MAKE) -C test TEST_SUITE=$(TEST_SUITE) TEST_SHARD=$(TEST_SHARD) .PHONY: ci ci-tag ci-pr ci: test-cross diff --git a/test/Makefile b/test/Makefile index 15b206c11..8050366f6 100644 --- a/test/Makefile +++ b/test/Makefile @@ -9,6 +9,13 @@ LINUXKIT:=$(shell command -v linuxkit 2> /dev/null) RTF:=$(shell command -v rtf 2> /dev/null) # test suite to run, blank for all TEST_SUITE ?= +# test shard to run, must be in format /, e.g. 1/10 means "first shard out of 10" +# uses total count to figure out which one to run +TEST_SHARD ?= +TEST_SHARD_ARG = +ifneq ($(TEST_SHARD),) +override TEST_SHARD_ARG=-s $(TEST_SHARD) +endif .PHONY: check-deps check-deps: @@ -34,6 +41,6 @@ ltp: $(LINUXKIT) test-ltp.img.tar.gz ### ------ test: - @rtf -l build -v run -x $(TEST_SUITE) + @rtf -l build -v=2 run -x $(TEST_SUITE) $(TEST_SHARD_ARG) test-pr: test