From 91dddc2e1108c779e8c5b85fd667029873c95172 Mon Sep 17 00:00:00 2001 From: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com> Date: Mon, 16 Dec 2024 19:04:39 +0200 Subject: [PATCH] Test against Redis CE (#3191) * Create workflow that tests go-redis against docker * Add docker compose file * Add docker compose file * Change command in docker compose * Load modules locally * test varios redis versions * add env var to test-redis-enterprise action * cleaning code * cleaning code --- .github/workflows/build.yml | 45 ++++++++++++++++++++- .github/workflows/test-redis-enterprise.yml | 1 + docker-compose.yml | 21 ++++++++++ main_test.go | 5 ++- 4 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 docker-compose.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c1d04b820..7578e962e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,4 +42,47 @@ jobs: uses: codecov/codecov-action@v5 with: files: coverage.txt - token: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file + token: ${{ secrets.CODECOV_TOKEN }} + + test-redis-ce: + name: test-redis-ce + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + redis_version: + - "8.0-M01" + - "7.4.1" + - "7.2.6" + - "6.2.16" + go-version: + - "1.19.x" + - "1.20.x" + - "1.21.x" + + steps: + - name: Set up ${{ matrix.go-version }} + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version }} + + - name: Checkout code + uses: actions/checkout@v4 + + # Set up Docker Compose environment + - name: Set up Docker Compose environment + run: | + docker compose --profile all up -d + + - name: Run tests + env: + USE_CONTAINERIZED_REDIS: "true" + RE_CLUSTER: "true" + run: | + go test \ + --ginkgo.skip-file="ring_test.go" \ + --ginkgo.skip-file="sentinel_test.go" \ + --ginkgo.skip-file="osscluster_test.go" \ + --ginkgo.skip-file="pubsub_test.go" \ + --ginkgo.skip-file="gears_commands_test.go" \ + --ginkgo.label-filter='!NonRedisEnterprise' diff --git a/.github/workflows/test-redis-enterprise.yml b/.github/workflows/test-redis-enterprise.yml index 940f0eae7..1cb36b8d2 100644 --- a/.github/workflows/test-redis-enterprise.yml +++ b/.github/workflows/test-redis-enterprise.yml @@ -47,6 +47,7 @@ jobs: - name: Test env: RE_CLUSTER: "1" + USE_CONTAINERIZED_REDIS: "1" run: | go test \ --ginkgo.skip-file="ring_test.go" \ diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..a641e4d3b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,21 @@ +--- + +services: + + redis-stanalone: + image: redislabs/client-libs-test:8.0-M02 + container_name: redis-standalone + environment: + - REDIS_CLUSTER=no + - PORT=6379 + - TLS_PORT=6666 + command: --loadmodule /usr/local/lib/redis/modules/redisbloom.so --loadmodule /usr/local/lib/redis/modules/redisearch.so --loadmodule /usr/local/lib/redis/modules/redistimeseries.so --loadmodule /usr/local/lib/redis/modules/rejson.so + ports: + - 6379:6379 + - 6380:6379 + - 6666:6666 # TLS port + volumes: + - "./dockers/redis-standalone:/redis/work" + profiles: + - standalone + - all diff --git a/main_test.go b/main_test.go index 19e944446..44f8e6829 100644 --- a/main_test.go +++ b/main_test.go @@ -66,6 +66,7 @@ var cluster = &clusterScenario{ } var RECluster = false +var USE_CONTAINERIZED_REDIS = false func registerProcess(port string, p *redisProcess) { if processes == nil { @@ -82,8 +83,8 @@ var _ = BeforeSuite(func() { } var err error RECluster, _ = strconv.ParseBool(os.Getenv("RE_CLUSTER")) - - if !RECluster { + USE_CONTAINERIZED_REDIS, _ = strconv.ParseBool(os.Getenv("USE_CONTAINERIZED_REDIS")) + if !RECluster || !USE_CONTAINERIZED_REDIS { redisMain, err = startRedis(redisPort) Expect(err).NotTo(HaveOccurred())