summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to 'examples/redis-unstable/.github/workflows')
-rw-r--r--examples/redis-unstable/.github/workflows/ci.yml102
-rw-r--r--examples/redis-unstable/.github/workflows/codecov.yml24
-rw-r--r--examples/redis-unstable/.github/workflows/codeql-analysis.yml33
-rw-r--r--examples/redis-unstable/.github/workflows/coverity.yml32
-rw-r--r--examples/redis-unstable/.github/workflows/daily.yml1287
-rw-r--r--examples/redis-unstable/.github/workflows/external.yml85
-rw-r--r--examples/redis-unstable/.github/workflows/redis_docs_sync.yaml35
-rw-r--r--examples/redis-unstable/.github/workflows/reply-schemas-linter.yml22
-rw-r--r--examples/redis-unstable/.github/workflows/spell-check.yml32
9 files changed, 0 insertions, 1652 deletions
diff --git a/examples/redis-unstable/.github/workflows/ci.yml b/examples/redis-unstable/.github/workflows/ci.yml
deleted file mode 100644
index 4fe75a6..0000000
--- a/examples/redis-unstable/.github/workflows/ci.yml
+++ /dev/null
@@ -1,102 +0,0 @@
-name: CI
-
-on: [push, pull_request]
-
-jobs:
-
- test-ubuntu-latest:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: make
- # Fail build if there are warnings
- # build with TLS just for compilation coverage
- run: make REDIS_CFLAGS='-Werror' BUILD_TLS=yes
- - name: test
- run: |
- sudo apt-get install tcl8.6 tclx
- ./runtest --verbose --tags -slow --dump-logs
- - name: validate commands.def up to date
- run: |
- touch src/commands/ping.json
- make commands.def
- dirty=$(git diff)
- if [[ ! -z $dirty ]]; then echo $dirty; exit 1; fi
-
- test-sanitizer-address:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: make
- # build with TLS module just for compilation coverage
- run: make SANITIZER=address REDIS_CFLAGS='-Werror -DDEBUG_ASSERTIONS -DREDIS_TEST' BUILD_TLS=module
- - name: testprep
- run: sudo apt-get install tcl8.6 tclx -y
- - name: test
- run: ./runtest --verbose --tags -slow --dump-logs
-
- build-debian-old:
- runs-on: ubuntu-latest
- container: debian:buster
- steps:
- - uses: actions/checkout@v4
- - name: make
- run: |
- sed -i 's|http://deb.debian.org/debian|http://archive.debian.org/debian|g' /etc/apt/sources.list
- sed -i 's|http://security.debian.org|http://archive.debian.org/debian-security|g' /etc/apt/sources.list
- apt-get update && apt-get install -y build-essential
- make REDIS_CFLAGS='-Werror'
-
- build-macos-latest:
- runs-on: macos-latest
- steps:
- - uses: actions/checkout@v4
- - name: make
- # Fail build if there are warnings
- # build with TLS just for compilation coverage
- run: make REDIS_CFLAGS='-Werror' BUILD_TLS=yes
-
- build-32bit:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: make
- run: |
- sudo apt-get update && sudo apt-get install libc6-dev-i386 gcc-multilib g++-multilib
- make REDIS_CFLAGS='-Werror' 32bit
-
- build-libc-malloc:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: make
- run: make REDIS_CFLAGS='-Werror' MALLOC=libc
-
- build-centos-jemalloc:
- runs-on: ubuntu-latest
- container: quay.io/centos/centos:stream9
- steps:
- - uses: actions/checkout@v4
- - name: make
- run: |
- dnf -y install which gcc gcc-c++ make
- make REDIS_CFLAGS='-Werror'
-
- build-old-chain-jemalloc:
- runs-on: ubuntu-latest
- container: ubuntu:20.04
- steps:
- - uses: actions/checkout@v4
- - name: make
- run: |
- apt-get update
- apt-get install -y gnupg2
- echo "deb http://archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list
- echo "deb http://archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list
- apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
- apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
- apt-get update
- apt-get install -y make gcc-4.8 g++-4.8
- update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
- update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
- make CC=gcc REDIS_CFLAGS='-Werror'
diff --git a/examples/redis-unstable/.github/workflows/codecov.yml b/examples/redis-unstable/.github/workflows/codecov.yml
deleted file mode 100644
index 82656ac..0000000
--- a/examples/redis-unstable/.github/workflows/codecov.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: "Codecov"
-
-# Enabling on each push is to display the coverage changes in every PR,
-# where each PR needs to be compared against the coverage of the head commit
-on: [push, pull_request]
-
-jobs:
- code-coverage:
- runs-on: ubuntu-22.04
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- - name: Install lcov and run test
- run: |
- sudo apt-get install lcov
- make lcov
-
- - name: Upload coverage reports to Codecov
- uses: codecov/codecov-action@v4
- with:
- token: ${{ secrets.CODECOV_TOKEN }}
- file: ./src/redis.info
diff --git a/examples/redis-unstable/.github/workflows/codeql-analysis.yml b/examples/redis-unstable/.github/workflows/codeql-analysis.yml
deleted file mode 100644
index c5411b9..0000000
--- a/examples/redis-unstable/.github/workflows/codeql-analysis.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-name: "CodeQL"
-
-on:
- pull_request:
- schedule:
- # run weekly new vulnerability was added to the database
- - cron: '0 0 * * 0'
-
-jobs:
- analyze:
- name: Analyze
- runs-on: ubuntu-latest
- if: github.event_name != 'schedule' || github.repository == 'redis/redis'
-
- strategy:
- fail-fast: false
- matrix:
- language: [ 'cpp' ]
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v3
- with:
- languages: ${{ matrix.language }}
-
- - name: Autobuild
- uses: github/codeql-action/autobuild@v3
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v3
diff --git a/examples/redis-unstable/.github/workflows/coverity.yml b/examples/redis-unstable/.github/workflows/coverity.yml
deleted file mode 100644
index 0237c87..0000000
--- a/examples/redis-unstable/.github/workflows/coverity.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-# Creates and uploads a Coverity build on a schedule
-name: Coverity Scan
-on:
- schedule:
- # Run once daily, since below 500k LOC can have 21 builds per week, per https://scan.coverity.com/faq#frequency
- - cron: '0 0 * * *'
- # Support manual execution
- workflow_dispatch:
-jobs:
- coverity:
- if: github.repository == 'redis/redis'
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@main
- - name: Download and extract the Coverity Build Tool
- run: |
- wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=${{ secrets.COVERITY_SCAN_TOKEN }}&project=redis-unstable" -O cov-analysis-linux64.tar.gz
- mkdir cov-analysis-linux64
- tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64
- - name: Install Redis dependencies
- run: sudo apt install -y gcc tcl8.6 tclx procps libssl-dev
- - name: Build with cov-build
- run: cov-analysis-linux64/bin/cov-build --dir cov-int make
- - name: Upload the result
- run: |
- tar czvf cov-int.tgz cov-int
- curl \
- --form project=redis-unstable \
- --form email=${{ secrets.COVERITY_SCAN_EMAIL }} \
- --form token=${{ secrets.COVERITY_SCAN_TOKEN }} \
- --form file=@cov-int.tgz \
- https://scan.coverity.com/builds
diff --git a/examples/redis-unstable/.github/workflows/daily.yml b/examples/redis-unstable/.github/workflows/daily.yml
deleted file mode 100644
index 0e478bb..0000000
--- a/examples/redis-unstable/.github/workflows/daily.yml
+++ /dev/null
@@ -1,1287 +0,0 @@
-name: Daily
-
-on:
- pull_request:
- branches:
- # any PR to a release branch.
- - '[0-9].[0-9]'
- schedule:
- - cron: '0 0 * * *'
- workflow_dispatch:
- inputs:
- skipjobs:
- description: 'jobs to skip (delete the ones you wanna keep, do not leave empty)'
- default: 'valgrind,sanitizer,tls,freebsd,macos,alpine,32bit,iothreads,ubuntu,centos,malloc,specific,fortify,reply-schema,oldTC,defrag,vectorset'
- skiptests:
- description: 'tests to skip (delete the ones you wanna keep, do not leave empty)'
- default: 'redis,modules,sentinel,cluster,unittest'
- test_args:
- description: 'extra test arguments'
- default: ''
- cluster_test_args:
- description: 'extra cluster / sentinel test arguments'
- default: ''
- use_repo:
- description: 'repo owner and name'
- default: 'redis/redis'
- use_git_ref:
- description: 'git branch or sha to use'
- default: 'unstable'
-
-
-jobs:
-
- test-ubuntu-jemalloc:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'ubuntu')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make REDIS_CFLAGS='-Werror -DREDIS_TEST'
- - name: testprep
- run: sudo apt-get install tcl8.6 tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
- - name: unittest
- if: true && !contains(github.event.inputs.skiptests, 'unittest')
- run: ./src/redis-server test all --accurate
-
- test-ubuntu-jemalloc-fortify:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'fortify')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- apt-get update && apt-get install -y make gcc g++
- make CC=gcc REDIS_CFLAGS='-Werror -DREDIS_TEST -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3'
- - name: testprep
- run: sudo apt-get install -y tcl8.6 tclx procps
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
- - name: unittest
- if: true && !contains(github.event.inputs.skiptests, 'unittest')
- run: ./src/redis-server test all --accurate
-
- test-ubuntu-libc-malloc:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'malloc')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make MALLOC=libc REDIS_CFLAGS='-Werror'
- - name: testprep
- run: sudo apt-get install tcl8.6 tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
-
- test-ubuntu-no-malloc-usable-size:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'malloc')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make MALLOC=libc CFLAGS=-DNO_MALLOC_USABLE_SIZE REDIS_CFLAGS='-Werror'
- - name: testprep
- run: sudo apt-get install tcl8.6 tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
-
- test-ubuntu-32bit:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, '32bit')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- sudo apt-get update && sudo apt-get install libc6-dev-i386 g++ gcc-multilib g++-multilib
- make 32bit REDIS_CFLAGS='-Werror -DREDIS_TEST'
- make -C tests/modules 32bit # the script below doesn't have an argument, we must build manually ahead of time
- - name: testprep
- run: sudo apt-get install tcl8.6 tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
- - name: unittest
- if: true && !contains(github.event.inputs.skiptests, 'unittest')
- run: ./src/redis-server test all --accurate
-
- test-ubuntu-tls:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'tls')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- make BUILD_TLS=yes REDIS_CFLAGS='-Werror'
- - name: testprep
- run: |
- sudo apt-get install tcl8.6 tclx tcl-tls
- ./utils/gen-test-certs.sh
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: |
- ./runtest --accurate --verbose --dump-logs --tls --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: |
- ./runtest-sentinel --tls ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: |
- ./runtest-cluster --tls ${{github.event.inputs.cluster_test_args}}
-
- test-ubuntu-tls-no-tls:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'tls')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- make BUILD_TLS=yes REDIS_CFLAGS='-Werror'
- - name: testprep
- run: |
- sudo apt-get install tcl8.6 tclx tcl-tls
- ./utils/gen-test-certs.sh
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: |
- ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: |
- ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: |
- ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
-
- test-ubuntu-io-threads:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'iothreads')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- make REDIS_CFLAGS='-Werror'
- - name: testprep
- run: sudo apt-get install tcl8.6 tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --config io-threads 4 --accurate --verbose --tags "network iothreads psync2 repl failover" --dump-logs ${{github.event.inputs.test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster --config io-threads 4 ${{github.event.inputs.cluster_test_args}}
-
- test-ubuntu-reclaim-cache:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'specific')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- make REDIS_CFLAGS='-Werror'
- - name: testprep
- run: |
- sudo apt-get install vmtouch
- mkdir /tmp/master
- mkdir /tmp/slave
- - name: warm up
- run: |
- ./src/redis-server --daemonize yes --logfile /dev/null
- ./src/redis-benchmark -n 1 > /dev/null
- ./src/redis-cli save | grep OK > /dev/null
- vmtouch -v ./dump.rdb > /dev/null
- - name: test
- run: |
- echo "test SAVE doesn't increase cache"
- CACHE0=$(grep -w file /sys/fs/cgroup/memory.stat | awk '{print $2}')
- echo "$CACHE0"
- ./src/redis-server --daemonize yes --logfile /dev/null --dir /tmp/master --port 8080 --repl-diskless-sync no --pidfile /tmp/master/redis.pid --rdbcompression no --enable-debug-command yes
- ./src/redis-cli -p 8080 debug populate 10000 k 102400
- ./src/redis-server --daemonize yes --logfile /dev/null --dir /tmp/slave --port 8081 --repl-diskless-load disabled --rdbcompression no
- ./src/redis-cli -p 8080 save > /dev/null
- VMOUT=$(vmtouch -v /tmp/master/dump.rdb)
- echo $VMOUT
- grep -q " 0%" <<< $VMOUT
- CACHE=$(grep -w file /sys/fs/cgroup/memory.stat | awk '{print $2}')
- echo "$CACHE"
- if [ "$(( $CACHE-$CACHE0 ))" -gt "8000000" ]; then exit 1; fi
-
- echo "test replication doesn't increase cache"
- ./src/redis-cli -p 8081 REPLICAOF 127.0.0.1 8080 > /dev/null
- while [ $(./src/redis-cli -p 8081 info replication | grep "master_link_status:down") ]; do sleep 1; done;
- sleep 1 # wait for the completion of cache reclaim bio
- VMOUT=$(vmtouch -v /tmp/master/dump.rdb)
- echo $VMOUT
- grep -q " 0%" <<< $VMOUT
- VMOUT=$(vmtouch -v /tmp/slave/dump.rdb)
- echo $VMOUT
- grep -q " 0%" <<< $VMOUT
- CACHE=$(grep -w file /sys/fs/cgroup/memory.stat | awk '{print $2}')
- echo "$CACHE"
- if [ "$(( $CACHE-$CACHE0 ))" -gt "8000000" ]; then exit 1; fi
-
- echo "test reboot doesn't increase cache"
- PID=$(cat /tmp/master/redis.pid)
- kill -15 $PID
- while [ -x /proc/${PID} ]; do sleep 1; done
- ./src/redis-server --daemonize yes --logfile /dev/null --dir /tmp/master --port 8080
- while [ $(./src/redis-cli -p 8080 info persistence | grep "loading:1") ]; do sleep 1; done;
- sleep 1 # wait for the completion of cache reclaim bio
- VMOUT=$(vmtouch -v /tmp/master/dump.rdb)
- echo $VMOUT
- grep -q " 0%" <<< $VMOUT
- CACHE=$(grep -w file /sys/fs/cgroup/memory.stat | awk '{print $2}')
- echo "$CACHE"
- if [ "$(( $CACHE-$CACHE0 ))" -gt "8000000" ]; then exit 1; fi
-
- test-valgrind-test:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'valgrind') && !contains(github.event.inputs.skiptests, 'redis')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make valgrind REDIS_CFLAGS='-Werror -DREDIS_TEST'
- - name: testprep
- run: |
- sudo apt-get update
- sudo apt-get install tcl8.6 tclx valgrind g++ -y
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- # Note that valgrind's overhead doesn't pair well with io-threads so we
- # explicitly disable tests tagged with 'iothreads' - these are tests that
- # always run with io-threads enabled.
- run: ./runtest --valgrind --no-latency --verbose --clients 1 --timeout 2400 --tags -iothreads --dump-logs ${{github.event.inputs.test_args}}
-
- test-valgrind-misc:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'valgrind') && !(contains(github.event.inputs.skiptests, 'modules') && contains(github.event.inputs.skiptests, 'unittest'))
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make valgrind REDIS_CFLAGS='-Werror -DREDIS_TEST'
- - name: testprep
- run: |
- sudo apt-get update
- sudo apt-get install tcl8.6 tclx valgrind -y
- - name: unittest
- if: true && !contains(github.event.inputs.skiptests, 'unittest')
- run: |
- valgrind --track-origins=yes --suppressions=./src/valgrind.sup --show-reachable=no --show-possibly-lost=no --leak-check=full --log-file=err.txt ./src/redis-server test all --valgrind
- if grep -q 0x err.txt; then cat err.txt; exit 1; fi
-
- test-valgrind-no-malloc-usable-size-test:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'valgrind') && !contains(github.event.inputs.skiptests, 'redis')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make valgrind CFLAGS="-DNO_MALLOC_USABLE_SIZE -DREDIS_TEST" REDIS_CFLAGS='-Werror'
- - name: testprep
- run: |
- sudo apt-get update
- sudo apt-get install tcl8.6 tclx valgrind g++ -y
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --valgrind --tags -iothreads --no-latency --verbose --clients 1 --timeout 2400 --dump-logs ${{github.event.inputs.test_args}}
-
- test-valgrind-no-malloc-usable-size-misc:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'valgrind') && !(contains(github.event.inputs.skiptests, 'modules') && contains(github.event.inputs.skiptests, 'unittest'))
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make valgrind CFLAGS="-DNO_MALLOC_USABLE_SIZE -DREDIS_TEST" REDIS_CFLAGS='-Werror'
- - name: testprep
- run: |
- sudo apt-get update
- sudo apt-get install tcl8.6 tclx valgrind -y
- - name: unittest
- if: true && !contains(github.event.inputs.skiptests, 'unittest')
- run: |
- valgrind --track-origins=yes --suppressions=./src/valgrind.sup --show-reachable=no --show-possibly-lost=no --leak-check=full --log-file=err.txt ./src/redis-server test all --valgrind
- if grep -q 0x err.txt; then cat err.txt; exit 1; fi
-
- test-sanitizer-address:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'sanitizer')
- timeout-minutes: 14400
- strategy:
- matrix:
- compiler: [ gcc, clang ]
- env:
- CC: ${{ matrix.compiler }}
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make SANITIZER=address REDIS_CFLAGS='-DREDIS_TEST -Werror -DDEBUG_ASSERTIONS'
- - name: testprep
- run: |
- sudo apt-get update
- sudo apt-get install tcl8.6 tclx -y
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
- - name: unittest
- if: true && !contains(github.event.inputs.skiptests, 'unittest')
- run: ./src/redis-server test all
-
- test-sanitizer-memory:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'sanitizer')
- timeout-minutes: 14400
- env:
- CC: clang # MSan works only with clang
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make SANITIZER=memory REDIS_CFLAGS='-DREDIS_TEST -Werror -DDEBUG_ASSERTIONS'
- - name: testprep
- run: |
- sudo apt-get update
- sudo apt-get install tcl8.6 tclx -y
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
- - name: unittest
- if: true && !contains(github.event.inputs.skiptests, 'unittest')
- run: ./src/redis-server test all
-
- test-sanitizer-undefined:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'sanitizer')
- timeout-minutes: 14400
- strategy:
- matrix:
- compiler: [ gcc, clang ]
- env:
- CC: ${{ matrix.compiler }}
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make SANITIZER=undefined REDIS_CFLAGS='-DREDIS_TEST -Werror' SKIP_VEC_SETS=yes LUA_DEBUG=yes # we (ab)use this flow to also check Lua C API violations
- - name: testprep
- run: |
- sudo apt-get update
- sudo apt-get install tcl8.6 tclx -y
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
- - name: unittest
- if: true && !contains(github.event.inputs.skiptests, 'unittest')
- run: ./src/redis-server test all --accurate
-
- test-sanitizer-thread:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'sanitizer')
- timeout-minutes: 14400
- strategy:
- fail-fast: false # let gcc and clang both run until the end even if one of them fails
- matrix:
- compiler: [ gcc, clang ]
- env:
- CC: ${{ matrix.compiler }}
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- # TODO Investigate why jemalloc with clang TSan crash on start;
- # with gcc TSan, jemalloc works modulo sentinel tests hanging.
- run: make SANITIZER=thread USE_JEMALLOC=no REDIS_CFLAGS='-DREDIS_TEST -Werror -DDEBUG_ASSERTIONS'
- - name: testprep
- run: |
- sudo apt-get update
- sudo apt-get install tcl8.6 tclx -y
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --tsan --clients 1 --config io-threads 4 --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel --tsan ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster --config io-threads 2 ${{github.event.inputs.cluster_test_args}}
-
- test-centos-jemalloc:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'centos')
- container: quay.io/centos/centos:stream9
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- dnf -y install which gcc make g++
- make REDIS_CFLAGS='-Werror'
- - name: testprep
- run: |
- dnf -y install epel-release
- dnf -y install tcl tcltls procps-ng /usr/bin/kill
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
-
- test-centos-tls-module:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'tls')
- container: quay.io/centos/centos:stream9
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- dnf -y install which gcc make openssl-devel openssl g++
- make BUILD_TLS=module REDIS_CFLAGS='-Werror'
- - name: testprep
- run: |
- dnf -y install epel-release
- dnf -y install tcl tcltls procps-ng /usr/bin/kill
- ./utils/gen-test-certs.sh
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: |
- ./runtest --accurate --verbose --dump-logs --tls-module --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: |
- ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: |
- ./runtest-cluster --tls-module ${{github.event.inputs.cluster_test_args}}
-
- test-centos-tls-module-no-tls:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'tls')
- container: quay.io/centos/centos:stream9
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- dnf -y install which gcc make openssl-devel openssl g++
- make BUILD_TLS=module REDIS_CFLAGS='-Werror'
- - name: testprep
- run: |
- dnf -y install epel-release
- dnf -y install tcl tcltls procps-ng /usr/bin/kill
- ./utils/gen-test-certs.sh
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: |
- ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: |
- ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: |
- ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
-
- test-macos-latest:
- runs-on: macos-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'macos') && !(contains(github.event.inputs.skiptests, 'redis') && contains(github.event.inputs.skiptests, 'modules'))
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make REDIS_CFLAGS='-Werror'
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --clients 1 --no-latency --dump-logs ${{github.event.inputs.test_args}}
-
- test-macos-latest-sentinel:
- runs-on: macos-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'macos') && !contains(github.event.inputs.skiptests, 'sentinel')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make REDIS_CFLAGS='-Werror'
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
-
- test-macos-latest-cluster:
- runs-on: macos-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'macos') && !contains(github.event.inputs.skiptests, 'cluster')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make REDIS_CFLAGS='-Werror'
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
-
- build-macos:
- strategy:
- matrix:
- os: [macos-14, macos-26]
- runs-on: ${{ matrix.os }}
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'macos')
- timeout-minutes: 14400
- steps:
- - uses: maxim-lobanov/setup-xcode@v1
- with:
- xcode-version: latest
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make REDIS_CFLAGS='-Werror -DREDIS_TEST'
-
- test-freebsd:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'freebsd')
- timeout-minutes: 14400
- env:
- CC: clang
- CXX: clang++
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: test
- uses: cross-platform-actions/action@v0.30.0
- with:
- operating_system: freebsd
- environment_variables: MAKE
- version: 13.2
- shell: bash
- run: |
- sudo pkg install -y bash gmake lang/tcl86 lang/tclX gcc
- gmake
- ./runtest --single unit/keyspace --single unit/auth --single unit/networking --single unit/protocol
-
- test-alpine-jemalloc:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'alpine')
- container: alpine:latest
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- apk add build-base
- make REDIS_CFLAGS='-Werror'
- - name: testprep
- run: apk add tcl procps tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
-
- test-alpine-libc-malloc:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'alpine')
- container: alpine:latest
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- apk add build-base
- make REDIS_CFLAGS='-Werror' USE_JEMALLOC=no CFLAGS=-DUSE_MALLOC_USABLE_SIZE
- - name: testprep
- run: apk add tcl procps tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
-
- reply-schemas-validator:
- runs-on: ubuntu-latest
- timeout-minutes: 14400
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'reply-schema')
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make REDIS_CFLAGS='-Werror -DLOG_REQ_RES'
- - name: testprep
- run: sudo apt-get install tcl8.6 tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --log-req-res --no-latency --dont-clean --force-resp3 --tags -slow --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel --log-req-res --dont-clean --force-resp3 ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster --log-req-res --dont-clean --force-resp3 ${{github.event.inputs.cluster_test_args}}
- - name: Install Python dependencies
- uses: py-actions/py-dependency-install@v4
- with:
- path: "./utils/req-res-validator/requirements.txt"
- - name: validator
- run: ./utils/req-res-log-validator.py --verbose --fail-missing-reply-schemas ${{ (!contains(github.event.inputs.skiptests, 'redis') && !contains(github.event.inputs.skiptests, 'module') && !contains(github.event.inputs.sentinel, 'redis') && !contains(github.event.inputs.skiptests, 'cluster')) && github.event.inputs.test_args == '' && github.event.inputs.cluster_test_args == '' && '--fail-commands-not-all-hit' || '' }}
-
- test-old-chain-jemalloc:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'oldTC')
- container: ubuntu:20.04
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- apt-get update
- apt-get install -y gnupg2
- echo "deb http://archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list
- echo "deb http://archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list
- apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
- apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
- apt-get update
- apt-get install -y make gcc-4.8 g++-4.8
- update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
- update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
- make CC=gcc REDIS_CFLAGS='-Werror'
- - name: testprep
- run: apt-get install -y tcl tcltls tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
-
- test-old-chain-tls-module:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'tls') && !contains(github.event.inputs.skipjobs, 'oldTC')
- container: ubuntu:20.04
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- apt-get update
- apt-get install -y gnupg2
- echo "deb http://archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list
- echo "deb http://archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list
- apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
- apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
- apt-get update
- apt-get install -y make gcc-4.8 g++-4.8 openssl libssl-dev
- update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
- update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
- make CC=gcc CXX=g++ BUILD_TLS=module REDIS_CFLAGS='-Werror'
- - name: testprep
- run: |
- apt-get install -y tcl tcltls tclx
- ./utils/gen-test-certs.sh
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: |
- ./runtest --accurate --verbose --dump-logs --tls-module --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: |
- ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: |
- ./runtest-cluster --tls-module ${{github.event.inputs.cluster_test_args}}
-
- test-old-chain-tls-module-no-tls:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'tls') && !contains(github.event.inputs.skipjobs, 'oldTC')
- container: ubuntu:20.04
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- apt-get update
- apt-get install -y gnupg2
- echo "deb http://archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list
- echo "deb http://archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list
- apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
- apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
- apt-get update
- apt-get install -y make gcc-4.8 g++-4.8 openssl libssl-dev
- update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
- update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
- make BUILD_TLS=module CC=gcc REDIS_CFLAGS='-Werror'
- - name: testprep
- run: |
- apt-get install -y tcl tcltls tclx
- ./utils/gen-test-certs.sh
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: |
- ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: sentinel tests
- if: true && !contains(github.event.inputs.skiptests, 'sentinel')
- run: |
- ./runtest-sentinel ${{github.event.inputs.cluster_test_args}}
- - name: cluster tests
- if: true && !contains(github.event.inputs.skiptests, 'cluster')
- run: |
- ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
-
- test-sanitizer-force-defrag:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'defrag')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make SANITIZER=address DEBUG_DEFRAG=force REDIS_CFLAGS='-Werror'
- - name: testprep
- run: sudo apt-get install tcl8.6 tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --debug-defrag --verbose --clients 1 ${{github.event.inputs.test_args}}
-
- test-vectorset:
- runs-on: ubuntu-latest
- if: |
- (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
- !contains(github.event.inputs.skipjobs, 'vectorset')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipjobs: ${{github.event.inputs.skipjobs}}"
- echo "skiptests: ${{github.event.inputs.skiptests}}"
- echo "test_args: ${{github.event.inputs.test_args}}"
- echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}"
- - uses: actions/checkout@v4
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make REDIS_CFLAGS='-Werror -DREDIS_TEST'
- - name: testprep
- run: |
- sudo apt-get install tcl8.6 tclx
- sudo pip install redis
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs --single vectorset/vectorset ${{github.event.inputs.test_args}}
diff --git a/examples/redis-unstable/.github/workflows/external.yml b/examples/redis-unstable/.github/workflows/external.yml
deleted file mode 100644
index 73c40b0..0000000
--- a/examples/redis-unstable/.github/workflows/external.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-name: External Server Tests
-
-on:
- pull_request:
- push:
- schedule:
- - cron: '0 0 * * *'
-
-jobs:
- test-external-standalone:
- runs-on: ubuntu-latest
- if: github.event_name != 'schedule' || github.repository == 'redis/redis'
- timeout-minutes: 14400
- steps:
- - uses: actions/checkout@v4
- - name: Build
- run: make REDIS_CFLAGS=-Werror
- - name: Start redis-server
- run: |
- ./src/redis-server --daemonize yes --save "" --logfile external-redis.log \
- --enable-protected-configs yes --enable-debug-command yes --enable-module-command yes
- - name: Run external test
- run: |
- ./runtest \
- --host 127.0.0.1 --port 6379 \
- --verbose \
- --tags -slow
- - name: Archive redis log
- if: ${{ failure() }}
- uses: actions/upload-artifact@v4
- with:
- name: test-external-redis-log
- path: external-redis.log
-
- test-external-cluster:
- runs-on: ubuntu-latest
- if: github.event_name != 'schedule' || github.repository == 'redis/redis'
- timeout-minutes: 14400
- steps:
- - uses: actions/checkout@v4
- - name: Build
- run: make REDIS_CFLAGS=-Werror
- - name: Start redis-server
- run: |
- ./src/redis-server --cluster-enabled yes --daemonize yes --save "" --logfile external-redis-cluster.log \
- --enable-protected-configs yes --enable-debug-command yes --enable-module-command yes
- - name: Create a single node cluster
- run: ./src/redis-cli cluster addslots $(for slot in {0..16383}; do echo $slot; done); sleep 5
- - name: Run external test
- run: |
- ./runtest \
- --host 127.0.0.1 --port 6379 \
- --verbose \
- --cluster-mode \
- --tags -slow
- - name: Archive redis log
- if: ${{ failure() }}
- uses: actions/upload-artifact@v4
- with:
- name: test-external-cluster-log
- path: external-redis-cluster.log
-
- test-external-nodebug:
- runs-on: ubuntu-latest
- if: github.event_name != 'schedule' || github.repository == 'redis/redis'
- timeout-minutes: 14400
- steps:
- - uses: actions/checkout@v4
- - name: Build
- run: make REDIS_CFLAGS=-Werror
- - name: Start redis-server
- run: |
- ./src/redis-server --daemonize yes --save "" --logfile external-redis-nodebug.log
- - name: Run external test
- run: |
- ./runtest \
- --host 127.0.0.1 --port 6379 \
- --verbose \
- --tags "-slow -needs:debug"
- - name: Archive redis log
- if: ${{ failure() }}
- uses: actions/upload-artifact@v4
- with:
- name: test-external-redis-nodebug-log
- path: external-redis-nodebug.log
diff --git a/examples/redis-unstable/.github/workflows/redis_docs_sync.yaml b/examples/redis-unstable/.github/workflows/redis_docs_sync.yaml
deleted file mode 100644
index 508b883..0000000
--- a/examples/redis-unstable/.github/workflows/redis_docs_sync.yaml
+++ /dev/null
@@ -1,35 +0,0 @@
-name: redis_docs_sync
-
-on:
- release:
- types: [published]
-
-jobs:
- redis_docs_sync:
- if: github.repository == 'redis/redis'
- runs-on: ubuntu-latest
- steps:
- - name: Generate a token
- id: generate-token
- uses: actions/create-github-app-token@v1
- with:
- app-id: ${{ secrets.DOCS_APP_ID }}
- private-key: ${{ secrets.DOCS_APP_PRIVATE_KEY }}
-
- - name: Invoke workflow on redis/docs
- env:
- GH_TOKEN: ${{ steps.generate-token.outputs.token }}
- RELEASE_NAME: ${{ github.event.release.tag_name }}
- run: |
- LATEST_RELEASE=$(
- curl -Ls \
- -H "Accept: application/vnd.github+json" \
- -H "Authorization: Bearer ${GH_TOKEN}" \
- -H "X-GitHub-Api-Version: 2022-11-28" \
- https://api.github.com/repos/redis/redis/releases/latest \
- | jq -r '.tag_name'
- )
-
- if [[ "${LATEST_RELEASE}" == "${RELEASE_NAME}" ]]; then
- gh workflow run -R redis/docs redis_docs_sync.yaml -f release="${RELEASE_NAME}"
- fi
diff --git a/examples/redis-unstable/.github/workflows/reply-schemas-linter.yml b/examples/redis-unstable/.github/workflows/reply-schemas-linter.yml
deleted file mode 100644
index a57a97a..0000000
--- a/examples/redis-unstable/.github/workflows/reply-schemas-linter.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-name: Reply-schemas linter
-
-on:
- push:
- paths:
- - 'src/commands/*.json'
- pull_request:
- paths:
- - 'src/commands/*.json'
-
-jobs:
- reply-schemas-linter:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: Setup nodejs
- uses: actions/setup-node@v4
- - name: Install packages
- run: npm install ajv
- - name: linter
- run: node ./utils/reply_schema_linter.js
-
diff --git a/examples/redis-unstable/.github/workflows/spell-check.yml b/examples/redis-unstable/.github/workflows/spell-check.yml
deleted file mode 100644
index 2f9cf9c..0000000
--- a/examples/redis-unstable/.github/workflows/spell-check.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-# A CI action that using codespell to check spell.
-# .github/.codespellrc is a config file.
-# .github/wordlist.txt is a list of words that will ignore word checks.
-# More details please check the following link:
-# https://github.com/codespell-project/codespell
-name: Spellcheck
-
-on:
- push:
- pull_request:
-
-jobs:
- build:
- name: Spellcheck
- runs-on: ubuntu-latest
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- - name: pip cache
- uses: actions/cache@v4
- with:
- path: ~/.cache/pip
- key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
- restore-keys: ${{ runner.os }}-pip-
-
- - name: Install prerequisites
- run: sudo pip install -r ./.codespell/requirements.txt
-
- - name: Spell check
- run: codespell --config=./.codespell/.codespellrc