diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2026-01-21 22:52:54 +0100 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2026-01-21 22:52:54 +0100 |
| commit | dcacc00e3750300617ba6e16eb346713f91a783a (patch) | |
| tree | 38e2d4fb5ed9d119711d4295c6eda4b014af73fd /examples/redis-unstable/.github/workflows | |
| parent | 58dac10aeb8f5a041c46bddbeaf4c7966a99b998 (diff) | |
| download | crep-dcacc00e3750300617ba6e16eb346713f91a783a.tar.gz | |
Remove testing data
Diffstat (limited to 'examples/redis-unstable/.github/workflows')
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 @@ | |||
| 1 | name: CI | ||
| 2 | |||
| 3 | on: [push, pull_request] | ||
| 4 | |||
| 5 | jobs: | ||
| 6 | |||
| 7 | test-ubuntu-latest: | ||
| 8 | runs-on: ubuntu-latest | ||
| 9 | steps: | ||
| 10 | - uses: actions/checkout@v4 | ||
| 11 | - name: make | ||
| 12 | # Fail build if there are warnings | ||
| 13 | # build with TLS just for compilation coverage | ||
| 14 | run: make REDIS_CFLAGS='-Werror' BUILD_TLS=yes | ||
| 15 | - name: test | ||
| 16 | run: | | ||
| 17 | sudo apt-get install tcl8.6 tclx | ||
| 18 | ./runtest --verbose --tags -slow --dump-logs | ||
| 19 | - name: validate commands.def up to date | ||
| 20 | run: | | ||
| 21 | touch src/commands/ping.json | ||
| 22 | make commands.def | ||
| 23 | dirty=$(git diff) | ||
| 24 | if [[ ! -z $dirty ]]; then echo $dirty; exit 1; fi | ||
| 25 | |||
| 26 | test-sanitizer-address: | ||
| 27 | runs-on: ubuntu-latest | ||
| 28 | steps: | ||
| 29 | - uses: actions/checkout@v4 | ||
| 30 | - name: make | ||
| 31 | # build with TLS module just for compilation coverage | ||
| 32 | run: make SANITIZER=address REDIS_CFLAGS='-Werror -DDEBUG_ASSERTIONS -DREDIS_TEST' BUILD_TLS=module | ||
| 33 | - name: testprep | ||
| 34 | run: sudo apt-get install tcl8.6 tclx -y | ||
| 35 | - name: test | ||
| 36 | run: ./runtest --verbose --tags -slow --dump-logs | ||
| 37 | |||
| 38 | build-debian-old: | ||
| 39 | runs-on: ubuntu-latest | ||
| 40 | container: debian:buster | ||
| 41 | steps: | ||
| 42 | - uses: actions/checkout@v4 | ||
| 43 | - name: make | ||
| 44 | run: | | ||
| 45 | sed -i 's|http://deb.debian.org/debian|http://archive.debian.org/debian|g' /etc/apt/sources.list | ||
| 46 | sed -i 's|http://security.debian.org|http://archive.debian.org/debian-security|g' /etc/apt/sources.list | ||
| 47 | apt-get update && apt-get install -y build-essential | ||
| 48 | make REDIS_CFLAGS='-Werror' | ||
| 49 | |||
| 50 | build-macos-latest: | ||
| 51 | runs-on: macos-latest | ||
| 52 | steps: | ||
| 53 | - uses: actions/checkout@v4 | ||
| 54 | - name: make | ||
| 55 | # Fail build if there are warnings | ||
| 56 | # build with TLS just for compilation coverage | ||
| 57 | run: make REDIS_CFLAGS='-Werror' BUILD_TLS=yes | ||
| 58 | |||
| 59 | build-32bit: | ||
| 60 | runs-on: ubuntu-latest | ||
| 61 | steps: | ||
| 62 | - uses: actions/checkout@v4 | ||
| 63 | - name: make | ||
| 64 | run: | | ||
| 65 | sudo apt-get update && sudo apt-get install libc6-dev-i386 gcc-multilib g++-multilib | ||
| 66 | make REDIS_CFLAGS='-Werror' 32bit | ||
| 67 | |||
| 68 | build-libc-malloc: | ||
| 69 | runs-on: ubuntu-latest | ||
| 70 | steps: | ||
| 71 | - uses: actions/checkout@v4 | ||
| 72 | - name: make | ||
| 73 | run: make REDIS_CFLAGS='-Werror' MALLOC=libc | ||
| 74 | |||
| 75 | build-centos-jemalloc: | ||
| 76 | runs-on: ubuntu-latest | ||
| 77 | container: quay.io/centos/centos:stream9 | ||
| 78 | steps: | ||
| 79 | - uses: actions/checkout@v4 | ||
| 80 | - name: make | ||
| 81 | run: | | ||
| 82 | dnf -y install which gcc gcc-c++ make | ||
| 83 | make REDIS_CFLAGS='-Werror' | ||
| 84 | |||
| 85 | build-old-chain-jemalloc: | ||
| 86 | runs-on: ubuntu-latest | ||
| 87 | container: ubuntu:20.04 | ||
| 88 | steps: | ||
| 89 | - uses: actions/checkout@v4 | ||
| 90 | - name: make | ||
| 91 | run: | | ||
| 92 | apt-get update | ||
| 93 | apt-get install -y gnupg2 | ||
| 94 | echo "deb http://archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list | ||
| 95 | echo "deb http://archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list | ||
| 96 | apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 | ||
| 97 | apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 | ||
| 98 | apt-get update | ||
| 99 | apt-get install -y make gcc-4.8 g++-4.8 | ||
| 100 | update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100 | ||
| 101 | update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100 | ||
| 102 | 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 @@ | |||
| 1 | name: "Codecov" | ||
| 2 | |||
| 3 | # Enabling on each push is to display the coverage changes in every PR, | ||
| 4 | # where each PR needs to be compared against the coverage of the head commit | ||
| 5 | on: [push, pull_request] | ||
| 6 | |||
| 7 | jobs: | ||
| 8 | code-coverage: | ||
| 9 | runs-on: ubuntu-22.04 | ||
| 10 | |||
| 11 | steps: | ||
| 12 | - name: Checkout repository | ||
| 13 | uses: actions/checkout@v4 | ||
| 14 | |||
| 15 | - name: Install lcov and run test | ||
| 16 | run: | | ||
| 17 | sudo apt-get install lcov | ||
| 18 | make lcov | ||
| 19 | |||
| 20 | - name: Upload coverage reports to Codecov | ||
| 21 | uses: codecov/codecov-action@v4 | ||
| 22 | with: | ||
| 23 | token: ${{ secrets.CODECOV_TOKEN }} | ||
| 24 | 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 @@ | |||
| 1 | name: "CodeQL" | ||
| 2 | |||
| 3 | on: | ||
| 4 | pull_request: | ||
| 5 | schedule: | ||
| 6 | # run weekly new vulnerability was added to the database | ||
| 7 | - cron: '0 0 * * 0' | ||
| 8 | |||
| 9 | jobs: | ||
| 10 | analyze: | ||
| 11 | name: Analyze | ||
| 12 | runs-on: ubuntu-latest | ||
| 13 | if: github.event_name != 'schedule' || github.repository == 'redis/redis' | ||
| 14 | |||
| 15 | strategy: | ||
| 16 | fail-fast: false | ||
| 17 | matrix: | ||
| 18 | language: [ 'cpp' ] | ||
| 19 | |||
| 20 | steps: | ||
| 21 | - name: Checkout repository | ||
| 22 | uses: actions/checkout@v4 | ||
| 23 | |||
| 24 | - name: Initialize CodeQL | ||
| 25 | uses: github/codeql-action/init@v3 | ||
| 26 | with: | ||
| 27 | languages: ${{ matrix.language }} | ||
| 28 | |||
| 29 | - name: Autobuild | ||
| 30 | uses: github/codeql-action/autobuild@v3 | ||
| 31 | |||
| 32 | - name: Perform CodeQL Analysis | ||
| 33 | 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 @@ | |||
| 1 | # Creates and uploads a Coverity build on a schedule | ||
| 2 | name: Coverity Scan | ||
| 3 | on: | ||
| 4 | schedule: | ||
| 5 | # Run once daily, since below 500k LOC can have 21 builds per week, per https://scan.coverity.com/faq#frequency | ||
| 6 | - cron: '0 0 * * *' | ||
| 7 | # Support manual execution | ||
| 8 | workflow_dispatch: | ||
| 9 | jobs: | ||
| 10 | coverity: | ||
| 11 | if: github.repository == 'redis/redis' | ||
| 12 | runs-on: ubuntu-latest | ||
| 13 | steps: | ||
| 14 | - uses: actions/checkout@main | ||
| 15 | - name: Download and extract the Coverity Build Tool | ||
| 16 | run: | | ||
| 17 | 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 | ||
| 18 | mkdir cov-analysis-linux64 | ||
| 19 | tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64 | ||
| 20 | - name: Install Redis dependencies | ||
| 21 | run: sudo apt install -y gcc tcl8.6 tclx procps libssl-dev | ||
| 22 | - name: Build with cov-build | ||
| 23 | run: cov-analysis-linux64/bin/cov-build --dir cov-int make | ||
| 24 | - name: Upload the result | ||
| 25 | run: | | ||
| 26 | tar czvf cov-int.tgz cov-int | ||
| 27 | curl \ | ||
| 28 | --form project=redis-unstable \ | ||
| 29 | --form email=${{ secrets.COVERITY_SCAN_EMAIL }} \ | ||
| 30 | --form token=${{ secrets.COVERITY_SCAN_TOKEN }} \ | ||
| 31 | --form file=@cov-int.tgz \ | ||
| 32 | 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 @@ | |||
| 1 | name: Daily | ||
| 2 | |||
| 3 | on: | ||
| 4 | pull_request: | ||
| 5 | branches: | ||
| 6 | # any PR to a release branch. | ||
| 7 | - '[0-9].[0-9]' | ||
| 8 | schedule: | ||
| 9 | - cron: '0 0 * * *' | ||
| 10 | workflow_dispatch: | ||
| 11 | inputs: | ||
| 12 | skipjobs: | ||
| 13 | description: 'jobs to skip (delete the ones you wanna keep, do not leave empty)' | ||
| 14 | default: 'valgrind,sanitizer,tls,freebsd,macos,alpine,32bit,iothreads,ubuntu,centos,malloc,specific,fortify,reply-schema,oldTC,defrag,vectorset' | ||
| 15 | skiptests: | ||
| 16 | description: 'tests to skip (delete the ones you wanna keep, do not leave empty)' | ||
| 17 | default: 'redis,modules,sentinel,cluster,unittest' | ||
| 18 | test_args: | ||
| 19 | description: 'extra test arguments' | ||
| 20 | default: '' | ||
| 21 | cluster_test_args: | ||
| 22 | description: 'extra cluster / sentinel test arguments' | ||
| 23 | default: '' | ||
| 24 | use_repo: | ||
| 25 | description: 'repo owner and name' | ||
| 26 | default: 'redis/redis' | ||
| 27 | use_git_ref: | ||
| 28 | description: 'git branch or sha to use' | ||
| 29 | default: 'unstable' | ||
| 30 | |||
| 31 | |||
| 32 | jobs: | ||
| 33 | |||
| 34 | test-ubuntu-jemalloc: | ||
| 35 | runs-on: ubuntu-latest | ||
| 36 | if: | | ||
| 37 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 38 | !contains(github.event.inputs.skipjobs, 'ubuntu') | ||
| 39 | timeout-minutes: 14400 | ||
| 40 | steps: | ||
| 41 | - name: prep | ||
| 42 | if: github.event_name == 'workflow_dispatch' | ||
| 43 | run: | | ||
| 44 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 45 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 46 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 47 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 48 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 49 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 50 | - uses: actions/checkout@v4 | ||
| 51 | with: | ||
| 52 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 53 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 54 | - name: make | ||
| 55 | run: make REDIS_CFLAGS='-Werror -DREDIS_TEST' | ||
| 56 | - name: testprep | ||
| 57 | run: sudo apt-get install tcl8.6 tclx | ||
| 58 | - name: test | ||
| 59 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 60 | run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 61 | - name: sentinel tests | ||
| 62 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 63 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 64 | - name: cluster tests | ||
| 65 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 66 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 67 | - name: unittest | ||
| 68 | if: true && !contains(github.event.inputs.skiptests, 'unittest') | ||
| 69 | run: ./src/redis-server test all --accurate | ||
| 70 | |||
| 71 | test-ubuntu-jemalloc-fortify: | ||
| 72 | runs-on: ubuntu-latest | ||
| 73 | if: | | ||
| 74 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 75 | !contains(github.event.inputs.skipjobs, 'fortify') | ||
| 76 | timeout-minutes: 14400 | ||
| 77 | steps: | ||
| 78 | - name: prep | ||
| 79 | if: github.event_name == 'workflow_dispatch' | ||
| 80 | run: | | ||
| 81 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 82 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 83 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 84 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 85 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 86 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 87 | - uses: actions/checkout@v4 | ||
| 88 | with: | ||
| 89 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 90 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 91 | - name: make | ||
| 92 | run: | | ||
| 93 | apt-get update && apt-get install -y make gcc g++ | ||
| 94 | make CC=gcc REDIS_CFLAGS='-Werror -DREDIS_TEST -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3' | ||
| 95 | - name: testprep | ||
| 96 | run: sudo apt-get install -y tcl8.6 tclx procps | ||
| 97 | - name: test | ||
| 98 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 99 | run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 100 | - name: sentinel tests | ||
| 101 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 102 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 103 | - name: cluster tests | ||
| 104 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 105 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 106 | - name: unittest | ||
| 107 | if: true && !contains(github.event.inputs.skiptests, 'unittest') | ||
| 108 | run: ./src/redis-server test all --accurate | ||
| 109 | |||
| 110 | test-ubuntu-libc-malloc: | ||
| 111 | runs-on: ubuntu-latest | ||
| 112 | if: | | ||
| 113 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 114 | !contains(github.event.inputs.skipjobs, 'malloc') | ||
| 115 | timeout-minutes: 14400 | ||
| 116 | steps: | ||
| 117 | - name: prep | ||
| 118 | if: github.event_name == 'workflow_dispatch' | ||
| 119 | run: | | ||
| 120 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 121 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 122 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 123 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 124 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 125 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 126 | - uses: actions/checkout@v4 | ||
| 127 | with: | ||
| 128 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 129 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 130 | - name: make | ||
| 131 | run: make MALLOC=libc REDIS_CFLAGS='-Werror' | ||
| 132 | - name: testprep | ||
| 133 | run: sudo apt-get install tcl8.6 tclx | ||
| 134 | - name: test | ||
| 135 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 136 | run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 137 | - name: sentinel tests | ||
| 138 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 139 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 140 | - name: cluster tests | ||
| 141 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 142 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 143 | |||
| 144 | test-ubuntu-no-malloc-usable-size: | ||
| 145 | runs-on: ubuntu-latest | ||
| 146 | if: | | ||
| 147 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 148 | !contains(github.event.inputs.skipjobs, 'malloc') | ||
| 149 | timeout-minutes: 14400 | ||
| 150 | steps: | ||
| 151 | - name: prep | ||
| 152 | if: github.event_name == 'workflow_dispatch' | ||
| 153 | run: | | ||
| 154 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 155 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 156 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 157 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 158 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 159 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 160 | - uses: actions/checkout@v4 | ||
| 161 | with: | ||
| 162 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 163 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 164 | - name: make | ||
| 165 | run: make MALLOC=libc CFLAGS=-DNO_MALLOC_USABLE_SIZE REDIS_CFLAGS='-Werror' | ||
| 166 | - name: testprep | ||
| 167 | run: sudo apt-get install tcl8.6 tclx | ||
| 168 | - name: test | ||
| 169 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 170 | run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 171 | - name: sentinel tests | ||
| 172 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 173 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 174 | - name: cluster tests | ||
| 175 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 176 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 177 | |||
| 178 | test-ubuntu-32bit: | ||
| 179 | runs-on: ubuntu-latest | ||
| 180 | if: | | ||
| 181 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 182 | !contains(github.event.inputs.skipjobs, '32bit') | ||
| 183 | timeout-minutes: 14400 | ||
| 184 | steps: | ||
| 185 | - name: prep | ||
| 186 | if: github.event_name == 'workflow_dispatch' | ||
| 187 | run: | | ||
| 188 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 189 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 190 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 191 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 192 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 193 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 194 | - uses: actions/checkout@v4 | ||
| 195 | with: | ||
| 196 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 197 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 198 | - name: make | ||
| 199 | run: | | ||
| 200 | sudo apt-get update && sudo apt-get install libc6-dev-i386 g++ gcc-multilib g++-multilib | ||
| 201 | make 32bit REDIS_CFLAGS='-Werror -DREDIS_TEST' | ||
| 202 | make -C tests/modules 32bit # the script below doesn't have an argument, we must build manually ahead of time | ||
| 203 | - name: testprep | ||
| 204 | run: sudo apt-get install tcl8.6 tclx | ||
| 205 | - name: test | ||
| 206 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 207 | run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 208 | - name: sentinel tests | ||
| 209 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 210 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 211 | - name: cluster tests | ||
| 212 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 213 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 214 | - name: unittest | ||
| 215 | if: true && !contains(github.event.inputs.skiptests, 'unittest') | ||
| 216 | run: ./src/redis-server test all --accurate | ||
| 217 | |||
| 218 | test-ubuntu-tls: | ||
| 219 | runs-on: ubuntu-latest | ||
| 220 | if: | | ||
| 221 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 222 | !contains(github.event.inputs.skipjobs, 'tls') | ||
| 223 | timeout-minutes: 14400 | ||
| 224 | steps: | ||
| 225 | - name: prep | ||
| 226 | if: github.event_name == 'workflow_dispatch' | ||
| 227 | run: | | ||
| 228 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 229 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 230 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 231 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 232 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 233 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 234 | - uses: actions/checkout@v4 | ||
| 235 | with: | ||
| 236 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 237 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 238 | - name: make | ||
| 239 | run: | | ||
| 240 | make BUILD_TLS=yes REDIS_CFLAGS='-Werror' | ||
| 241 | - name: testprep | ||
| 242 | run: | | ||
| 243 | sudo apt-get install tcl8.6 tclx tcl-tls | ||
| 244 | ./utils/gen-test-certs.sh | ||
| 245 | - name: test | ||
| 246 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 247 | run: | | ||
| 248 | ./runtest --accurate --verbose --dump-logs --tls --dump-logs ${{github.event.inputs.test_args}} | ||
| 249 | - name: sentinel tests | ||
| 250 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 251 | run: | | ||
| 252 | ./runtest-sentinel --tls ${{github.event.inputs.cluster_test_args}} | ||
| 253 | - name: cluster tests | ||
| 254 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 255 | run: | | ||
| 256 | ./runtest-cluster --tls ${{github.event.inputs.cluster_test_args}} | ||
| 257 | |||
| 258 | test-ubuntu-tls-no-tls: | ||
| 259 | runs-on: ubuntu-latest | ||
| 260 | if: | | ||
| 261 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 262 | !contains(github.event.inputs.skipjobs, 'tls') | ||
| 263 | timeout-minutes: 14400 | ||
| 264 | steps: | ||
| 265 | - name: prep | ||
| 266 | if: github.event_name == 'workflow_dispatch' | ||
| 267 | run: | | ||
| 268 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 269 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 270 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 271 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 272 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 273 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 274 | - uses: actions/checkout@v4 | ||
| 275 | with: | ||
| 276 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 277 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 278 | - name: make | ||
| 279 | run: | | ||
| 280 | make BUILD_TLS=yes REDIS_CFLAGS='-Werror' | ||
| 281 | - name: testprep | ||
| 282 | run: | | ||
| 283 | sudo apt-get install tcl8.6 tclx tcl-tls | ||
| 284 | ./utils/gen-test-certs.sh | ||
| 285 | - name: test | ||
| 286 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 287 | run: | | ||
| 288 | ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 289 | - name: sentinel tests | ||
| 290 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 291 | run: | | ||
| 292 | ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 293 | - name: cluster tests | ||
| 294 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 295 | run: | | ||
| 296 | ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 297 | |||
| 298 | test-ubuntu-io-threads: | ||
| 299 | runs-on: ubuntu-latest | ||
| 300 | if: | | ||
| 301 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 302 | !contains(github.event.inputs.skipjobs, 'iothreads') | ||
| 303 | timeout-minutes: 14400 | ||
| 304 | steps: | ||
| 305 | - name: prep | ||
| 306 | if: github.event_name == 'workflow_dispatch' | ||
| 307 | run: | | ||
| 308 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 309 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 310 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 311 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 312 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 313 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 314 | - uses: actions/checkout@v4 | ||
| 315 | with: | ||
| 316 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 317 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 318 | - name: make | ||
| 319 | run: | | ||
| 320 | make REDIS_CFLAGS='-Werror' | ||
| 321 | - name: testprep | ||
| 322 | run: sudo apt-get install tcl8.6 tclx | ||
| 323 | - name: test | ||
| 324 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 325 | run: ./runtest --config io-threads 4 --accurate --verbose --tags "network iothreads psync2 repl failover" --dump-logs ${{github.event.inputs.test_args}} | ||
| 326 | - name: cluster tests | ||
| 327 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 328 | run: ./runtest-cluster --config io-threads 4 ${{github.event.inputs.cluster_test_args}} | ||
| 329 | |||
| 330 | test-ubuntu-reclaim-cache: | ||
| 331 | runs-on: ubuntu-latest | ||
| 332 | if: | | ||
| 333 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 334 | !contains(github.event.inputs.skipjobs, 'specific') | ||
| 335 | timeout-minutes: 14400 | ||
| 336 | steps: | ||
| 337 | - name: prep | ||
| 338 | if: github.event_name == 'workflow_dispatch' | ||
| 339 | run: | | ||
| 340 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 341 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 342 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 343 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 344 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 345 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 346 | - uses: actions/checkout@v4 | ||
| 347 | with: | ||
| 348 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 349 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 350 | - name: make | ||
| 351 | run: | | ||
| 352 | make REDIS_CFLAGS='-Werror' | ||
| 353 | - name: testprep | ||
| 354 | run: | | ||
| 355 | sudo apt-get install vmtouch | ||
| 356 | mkdir /tmp/master | ||
| 357 | mkdir /tmp/slave | ||
| 358 | - name: warm up | ||
| 359 | run: | | ||
| 360 | ./src/redis-server --daemonize yes --logfile /dev/null | ||
| 361 | ./src/redis-benchmark -n 1 > /dev/null | ||
| 362 | ./src/redis-cli save | grep OK > /dev/null | ||
| 363 | vmtouch -v ./dump.rdb > /dev/null | ||
| 364 | - name: test | ||
| 365 | run: | | ||
| 366 | echo "test SAVE doesn't increase cache" | ||
| 367 | CACHE0=$(grep -w file /sys/fs/cgroup/memory.stat | awk '{print $2}') | ||
| 368 | echo "$CACHE0" | ||
| 369 | ./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 | ||
| 370 | ./src/redis-cli -p 8080 debug populate 10000 k 102400 | ||
| 371 | ./src/redis-server --daemonize yes --logfile /dev/null --dir /tmp/slave --port 8081 --repl-diskless-load disabled --rdbcompression no | ||
| 372 | ./src/redis-cli -p 8080 save > /dev/null | ||
| 373 | VMOUT=$(vmtouch -v /tmp/master/dump.rdb) | ||
| 374 | echo $VMOUT | ||
| 375 | grep -q " 0%" <<< $VMOUT | ||
| 376 | CACHE=$(grep -w file /sys/fs/cgroup/memory.stat | awk '{print $2}') | ||
| 377 | echo "$CACHE" | ||
| 378 | if [ "$(( $CACHE-$CACHE0 ))" -gt "8000000" ]; then exit 1; fi | ||
| 379 | |||
| 380 | echo "test replication doesn't increase cache" | ||
| 381 | ./src/redis-cli -p 8081 REPLICAOF 127.0.0.1 8080 > /dev/null | ||
| 382 | while [ $(./src/redis-cli -p 8081 info replication | grep "master_link_status:down") ]; do sleep 1; done; | ||
| 383 | sleep 1 # wait for the completion of cache reclaim bio | ||
| 384 | VMOUT=$(vmtouch -v /tmp/master/dump.rdb) | ||
| 385 | echo $VMOUT | ||
| 386 | grep -q " 0%" <<< $VMOUT | ||
| 387 | VMOUT=$(vmtouch -v /tmp/slave/dump.rdb) | ||
| 388 | echo $VMOUT | ||
| 389 | grep -q " 0%" <<< $VMOUT | ||
| 390 | CACHE=$(grep -w file /sys/fs/cgroup/memory.stat | awk '{print $2}') | ||
| 391 | echo "$CACHE" | ||
| 392 | if [ "$(( $CACHE-$CACHE0 ))" -gt "8000000" ]; then exit 1; fi | ||
| 393 | |||
| 394 | echo "test reboot doesn't increase cache" | ||
| 395 | PID=$(cat /tmp/master/redis.pid) | ||
| 396 | kill -15 $PID | ||
| 397 | while [ -x /proc/${PID} ]; do sleep 1; done | ||
| 398 | ./src/redis-server --daemonize yes --logfile /dev/null --dir /tmp/master --port 8080 | ||
| 399 | while [ $(./src/redis-cli -p 8080 info persistence | grep "loading:1") ]; do sleep 1; done; | ||
| 400 | sleep 1 # wait for the completion of cache reclaim bio | ||
| 401 | VMOUT=$(vmtouch -v /tmp/master/dump.rdb) | ||
| 402 | echo $VMOUT | ||
| 403 | grep -q " 0%" <<< $VMOUT | ||
| 404 | CACHE=$(grep -w file /sys/fs/cgroup/memory.stat | awk '{print $2}') | ||
| 405 | echo "$CACHE" | ||
| 406 | if [ "$(( $CACHE-$CACHE0 ))" -gt "8000000" ]; then exit 1; fi | ||
| 407 | |||
| 408 | test-valgrind-test: | ||
| 409 | runs-on: ubuntu-latest | ||
| 410 | if: | | ||
| 411 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 412 | !contains(github.event.inputs.skipjobs, 'valgrind') && !contains(github.event.inputs.skiptests, 'redis') | ||
| 413 | timeout-minutes: 14400 | ||
| 414 | steps: | ||
| 415 | - name: prep | ||
| 416 | if: github.event_name == 'workflow_dispatch' | ||
| 417 | run: | | ||
| 418 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 419 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 420 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 421 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 422 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 423 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 424 | - uses: actions/checkout@v4 | ||
| 425 | with: | ||
| 426 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 427 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 428 | - name: make | ||
| 429 | run: make valgrind REDIS_CFLAGS='-Werror -DREDIS_TEST' | ||
| 430 | - name: testprep | ||
| 431 | run: | | ||
| 432 | sudo apt-get update | ||
| 433 | sudo apt-get install tcl8.6 tclx valgrind g++ -y | ||
| 434 | - name: test | ||
| 435 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 436 | # Note that valgrind's overhead doesn't pair well with io-threads so we | ||
| 437 | # explicitly disable tests tagged with 'iothreads' - these are tests that | ||
| 438 | # always run with io-threads enabled. | ||
| 439 | run: ./runtest --valgrind --no-latency --verbose --clients 1 --timeout 2400 --tags -iothreads --dump-logs ${{github.event.inputs.test_args}} | ||
| 440 | |||
| 441 | test-valgrind-misc: | ||
| 442 | runs-on: ubuntu-latest | ||
| 443 | if: | | ||
| 444 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 445 | !contains(github.event.inputs.skipjobs, 'valgrind') && !(contains(github.event.inputs.skiptests, 'modules') && contains(github.event.inputs.skiptests, 'unittest')) | ||
| 446 | timeout-minutes: 14400 | ||
| 447 | steps: | ||
| 448 | - name: prep | ||
| 449 | if: github.event_name == 'workflow_dispatch' | ||
| 450 | run: | | ||
| 451 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 452 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 453 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 454 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 455 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 456 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 457 | - uses: actions/checkout@v4 | ||
| 458 | with: | ||
| 459 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 460 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 461 | - name: make | ||
| 462 | run: make valgrind REDIS_CFLAGS='-Werror -DREDIS_TEST' | ||
| 463 | - name: testprep | ||
| 464 | run: | | ||
| 465 | sudo apt-get update | ||
| 466 | sudo apt-get install tcl8.6 tclx valgrind -y | ||
| 467 | - name: unittest | ||
| 468 | if: true && !contains(github.event.inputs.skiptests, 'unittest') | ||
| 469 | run: | | ||
| 470 | 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 | ||
| 471 | if grep -q 0x err.txt; then cat err.txt; exit 1; fi | ||
| 472 | |||
| 473 | test-valgrind-no-malloc-usable-size-test: | ||
| 474 | runs-on: ubuntu-latest | ||
| 475 | if: | | ||
| 476 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 477 | !contains(github.event.inputs.skipjobs, 'valgrind') && !contains(github.event.inputs.skiptests, 'redis') | ||
| 478 | timeout-minutes: 14400 | ||
| 479 | steps: | ||
| 480 | - name: prep | ||
| 481 | if: github.event_name == 'workflow_dispatch' | ||
| 482 | run: | | ||
| 483 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 484 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 485 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 486 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 487 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 488 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 489 | - uses: actions/checkout@v4 | ||
| 490 | with: | ||
| 491 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 492 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 493 | - name: make | ||
| 494 | run: make valgrind CFLAGS="-DNO_MALLOC_USABLE_SIZE -DREDIS_TEST" REDIS_CFLAGS='-Werror' | ||
| 495 | - name: testprep | ||
| 496 | run: | | ||
| 497 | sudo apt-get update | ||
| 498 | sudo apt-get install tcl8.6 tclx valgrind g++ -y | ||
| 499 | - name: test | ||
| 500 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 501 | run: ./runtest --valgrind --tags -iothreads --no-latency --verbose --clients 1 --timeout 2400 --dump-logs ${{github.event.inputs.test_args}} | ||
| 502 | |||
| 503 | test-valgrind-no-malloc-usable-size-misc: | ||
| 504 | runs-on: ubuntu-latest | ||
| 505 | if: | | ||
| 506 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 507 | !contains(github.event.inputs.skipjobs, 'valgrind') && !(contains(github.event.inputs.skiptests, 'modules') && contains(github.event.inputs.skiptests, 'unittest')) | ||
| 508 | timeout-minutes: 14400 | ||
| 509 | steps: | ||
| 510 | - name: prep | ||
| 511 | if: github.event_name == 'workflow_dispatch' | ||
| 512 | run: | | ||
| 513 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 514 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 515 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 516 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 517 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 518 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 519 | - uses: actions/checkout@v4 | ||
| 520 | with: | ||
| 521 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 522 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 523 | - name: make | ||
| 524 | run: make valgrind CFLAGS="-DNO_MALLOC_USABLE_SIZE -DREDIS_TEST" REDIS_CFLAGS='-Werror' | ||
| 525 | - name: testprep | ||
| 526 | run: | | ||
| 527 | sudo apt-get update | ||
| 528 | sudo apt-get install tcl8.6 tclx valgrind -y | ||
| 529 | - name: unittest | ||
| 530 | if: true && !contains(github.event.inputs.skiptests, 'unittest') | ||
| 531 | run: | | ||
| 532 | 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 | ||
| 533 | if grep -q 0x err.txt; then cat err.txt; exit 1; fi | ||
| 534 | |||
| 535 | test-sanitizer-address: | ||
| 536 | runs-on: ubuntu-latest | ||
| 537 | if: | | ||
| 538 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 539 | !contains(github.event.inputs.skipjobs, 'sanitizer') | ||
| 540 | timeout-minutes: 14400 | ||
| 541 | strategy: | ||
| 542 | matrix: | ||
| 543 | compiler: [ gcc, clang ] | ||
| 544 | env: | ||
| 545 | CC: ${{ matrix.compiler }} | ||
| 546 | steps: | ||
| 547 | - name: prep | ||
| 548 | if: github.event_name == 'workflow_dispatch' | ||
| 549 | run: | | ||
| 550 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 551 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 552 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 553 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 554 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 555 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 556 | - uses: actions/checkout@v4 | ||
| 557 | with: | ||
| 558 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 559 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 560 | - name: make | ||
| 561 | run: make SANITIZER=address REDIS_CFLAGS='-DREDIS_TEST -Werror -DDEBUG_ASSERTIONS' | ||
| 562 | - name: testprep | ||
| 563 | run: | | ||
| 564 | sudo apt-get update | ||
| 565 | sudo apt-get install tcl8.6 tclx -y | ||
| 566 | - name: test | ||
| 567 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 568 | run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 569 | - name: sentinel tests | ||
| 570 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 571 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 572 | - name: cluster tests | ||
| 573 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 574 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 575 | - name: unittest | ||
| 576 | if: true && !contains(github.event.inputs.skiptests, 'unittest') | ||
| 577 | run: ./src/redis-server test all | ||
| 578 | |||
| 579 | test-sanitizer-memory: | ||
| 580 | runs-on: ubuntu-latest | ||
| 581 | if: | | ||
| 582 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 583 | !contains(github.event.inputs.skipjobs, 'sanitizer') | ||
| 584 | timeout-minutes: 14400 | ||
| 585 | env: | ||
| 586 | CC: clang # MSan works only with clang | ||
| 587 | steps: | ||
| 588 | - name: prep | ||
| 589 | if: github.event_name == 'workflow_dispatch' | ||
| 590 | run: | | ||
| 591 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 592 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 593 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 594 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 595 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 596 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 597 | - uses: actions/checkout@v4 | ||
| 598 | with: | ||
| 599 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 600 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 601 | - name: make | ||
| 602 | run: make SANITIZER=memory REDIS_CFLAGS='-DREDIS_TEST -Werror -DDEBUG_ASSERTIONS' | ||
| 603 | - name: testprep | ||
| 604 | run: | | ||
| 605 | sudo apt-get update | ||
| 606 | sudo apt-get install tcl8.6 tclx -y | ||
| 607 | - name: test | ||
| 608 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 609 | run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 610 | - name: sentinel tests | ||
| 611 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 612 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 613 | - name: cluster tests | ||
| 614 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 615 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 616 | - name: unittest | ||
| 617 | if: true && !contains(github.event.inputs.skiptests, 'unittest') | ||
| 618 | run: ./src/redis-server test all | ||
| 619 | |||
| 620 | test-sanitizer-undefined: | ||
| 621 | runs-on: ubuntu-latest | ||
| 622 | if: | | ||
| 623 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 624 | !contains(github.event.inputs.skipjobs, 'sanitizer') | ||
| 625 | timeout-minutes: 14400 | ||
| 626 | strategy: | ||
| 627 | matrix: | ||
| 628 | compiler: [ gcc, clang ] | ||
| 629 | env: | ||
| 630 | CC: ${{ matrix.compiler }} | ||
| 631 | steps: | ||
| 632 | - name: prep | ||
| 633 | if: github.event_name == 'workflow_dispatch' | ||
| 634 | run: | | ||
| 635 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 636 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 637 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 638 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 639 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 640 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 641 | - uses: actions/checkout@v4 | ||
| 642 | with: | ||
| 643 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 644 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 645 | - name: make | ||
| 646 | 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 | ||
| 647 | - name: testprep | ||
| 648 | run: | | ||
| 649 | sudo apt-get update | ||
| 650 | sudo apt-get install tcl8.6 tclx -y | ||
| 651 | - name: test | ||
| 652 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 653 | run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 654 | - name: sentinel tests | ||
| 655 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 656 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 657 | - name: cluster tests | ||
| 658 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 659 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 660 | - name: unittest | ||
| 661 | if: true && !contains(github.event.inputs.skiptests, 'unittest') | ||
| 662 | run: ./src/redis-server test all --accurate | ||
| 663 | |||
| 664 | test-sanitizer-thread: | ||
| 665 | runs-on: ubuntu-latest | ||
| 666 | if: | | ||
| 667 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 668 | !contains(github.event.inputs.skipjobs, 'sanitizer') | ||
| 669 | timeout-minutes: 14400 | ||
| 670 | strategy: | ||
| 671 | fail-fast: false # let gcc and clang both run until the end even if one of them fails | ||
| 672 | matrix: | ||
| 673 | compiler: [ gcc, clang ] | ||
| 674 | env: | ||
| 675 | CC: ${{ matrix.compiler }} | ||
| 676 | steps: | ||
| 677 | - name: prep | ||
| 678 | if: github.event_name == 'workflow_dispatch' | ||
| 679 | run: | | ||
| 680 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 681 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 682 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 683 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 684 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 685 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 686 | - uses: actions/checkout@v4 | ||
| 687 | with: | ||
| 688 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 689 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 690 | - name: make | ||
| 691 | # TODO Investigate why jemalloc with clang TSan crash on start; | ||
| 692 | # with gcc TSan, jemalloc works modulo sentinel tests hanging. | ||
| 693 | run: make SANITIZER=thread USE_JEMALLOC=no REDIS_CFLAGS='-DREDIS_TEST -Werror -DDEBUG_ASSERTIONS' | ||
| 694 | - name: testprep | ||
| 695 | run: | | ||
| 696 | sudo apt-get update | ||
| 697 | sudo apt-get install tcl8.6 tclx -y | ||
| 698 | - name: test | ||
| 699 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 700 | run: ./runtest --tsan --clients 1 --config io-threads 4 --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 701 | - name: sentinel tests | ||
| 702 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 703 | run: ./runtest-sentinel --tsan ${{github.event.inputs.cluster_test_args}} | ||
| 704 | - name: cluster tests | ||
| 705 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 706 | run: ./runtest-cluster --config io-threads 2 ${{github.event.inputs.cluster_test_args}} | ||
| 707 | |||
| 708 | test-centos-jemalloc: | ||
| 709 | runs-on: ubuntu-latest | ||
| 710 | if: | | ||
| 711 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 712 | !contains(github.event.inputs.skipjobs, 'centos') | ||
| 713 | container: quay.io/centos/centos:stream9 | ||
| 714 | timeout-minutes: 14400 | ||
| 715 | steps: | ||
| 716 | - name: prep | ||
| 717 | if: github.event_name == 'workflow_dispatch' | ||
| 718 | run: | | ||
| 719 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 720 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 721 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 722 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 723 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 724 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 725 | - uses: actions/checkout@v4 | ||
| 726 | with: | ||
| 727 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 728 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 729 | - name: make | ||
| 730 | run: | | ||
| 731 | dnf -y install which gcc make g++ | ||
| 732 | make REDIS_CFLAGS='-Werror' | ||
| 733 | - name: testprep | ||
| 734 | run: | | ||
| 735 | dnf -y install epel-release | ||
| 736 | dnf -y install tcl tcltls procps-ng /usr/bin/kill | ||
| 737 | - name: test | ||
| 738 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 739 | run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 740 | - name: sentinel tests | ||
| 741 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 742 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 743 | - name: cluster tests | ||
| 744 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 745 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 746 | |||
| 747 | test-centos-tls-module: | ||
| 748 | runs-on: ubuntu-latest | ||
| 749 | if: | | ||
| 750 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 751 | !contains(github.event.inputs.skipjobs, 'tls') | ||
| 752 | container: quay.io/centos/centos:stream9 | ||
| 753 | timeout-minutes: 14400 | ||
| 754 | steps: | ||
| 755 | - name: prep | ||
| 756 | if: github.event_name == 'workflow_dispatch' | ||
| 757 | run: | | ||
| 758 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 759 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 760 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 761 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 762 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 763 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 764 | - uses: actions/checkout@v4 | ||
| 765 | with: | ||
| 766 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 767 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 768 | - name: make | ||
| 769 | run: | | ||
| 770 | dnf -y install which gcc make openssl-devel openssl g++ | ||
| 771 | make BUILD_TLS=module REDIS_CFLAGS='-Werror' | ||
| 772 | - name: testprep | ||
| 773 | run: | | ||
| 774 | dnf -y install epel-release | ||
| 775 | dnf -y install tcl tcltls procps-ng /usr/bin/kill | ||
| 776 | ./utils/gen-test-certs.sh | ||
| 777 | - name: test | ||
| 778 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 779 | run: | | ||
| 780 | ./runtest --accurate --verbose --dump-logs --tls-module --dump-logs ${{github.event.inputs.test_args}} | ||
| 781 | - name: sentinel tests | ||
| 782 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 783 | run: | | ||
| 784 | ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 785 | - name: cluster tests | ||
| 786 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 787 | run: | | ||
| 788 | ./runtest-cluster --tls-module ${{github.event.inputs.cluster_test_args}} | ||
| 789 | |||
| 790 | test-centos-tls-module-no-tls: | ||
| 791 | runs-on: ubuntu-latest | ||
| 792 | if: | | ||
| 793 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 794 | !contains(github.event.inputs.skipjobs, 'tls') | ||
| 795 | container: quay.io/centos/centos:stream9 | ||
| 796 | timeout-minutes: 14400 | ||
| 797 | steps: | ||
| 798 | - name: prep | ||
| 799 | if: github.event_name == 'workflow_dispatch' | ||
| 800 | run: | | ||
| 801 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 802 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 803 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 804 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 805 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 806 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 807 | - uses: actions/checkout@v4 | ||
| 808 | with: | ||
| 809 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 810 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 811 | - name: make | ||
| 812 | run: | | ||
| 813 | dnf -y install which gcc make openssl-devel openssl g++ | ||
| 814 | make BUILD_TLS=module REDIS_CFLAGS='-Werror' | ||
| 815 | - name: testprep | ||
| 816 | run: | | ||
| 817 | dnf -y install epel-release | ||
| 818 | dnf -y install tcl tcltls procps-ng /usr/bin/kill | ||
| 819 | ./utils/gen-test-certs.sh | ||
| 820 | - name: test | ||
| 821 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 822 | run: | | ||
| 823 | ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 824 | - name: sentinel tests | ||
| 825 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 826 | run: | | ||
| 827 | ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 828 | - name: cluster tests | ||
| 829 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 830 | run: | | ||
| 831 | ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 832 | |||
| 833 | test-macos-latest: | ||
| 834 | runs-on: macos-latest | ||
| 835 | if: | | ||
| 836 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 837 | !contains(github.event.inputs.skipjobs, 'macos') && !(contains(github.event.inputs.skiptests, 'redis') && contains(github.event.inputs.skiptests, 'modules')) | ||
| 838 | timeout-minutes: 14400 | ||
| 839 | steps: | ||
| 840 | - name: prep | ||
| 841 | if: github.event_name == 'workflow_dispatch' | ||
| 842 | run: | | ||
| 843 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 844 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 845 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 846 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 847 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 848 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 849 | - uses: actions/checkout@v4 | ||
| 850 | with: | ||
| 851 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 852 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 853 | - name: make | ||
| 854 | run: make REDIS_CFLAGS='-Werror' | ||
| 855 | - name: test | ||
| 856 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 857 | run: ./runtest --accurate --verbose --clients 1 --no-latency --dump-logs ${{github.event.inputs.test_args}} | ||
| 858 | |||
| 859 | test-macos-latest-sentinel: | ||
| 860 | runs-on: macos-latest | ||
| 861 | if: | | ||
| 862 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 863 | !contains(github.event.inputs.skipjobs, 'macos') && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 864 | timeout-minutes: 14400 | ||
| 865 | steps: | ||
| 866 | - name: prep | ||
| 867 | if: github.event_name == 'workflow_dispatch' | ||
| 868 | run: | | ||
| 869 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 870 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 871 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 872 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 873 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 874 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 875 | - uses: actions/checkout@v4 | ||
| 876 | with: | ||
| 877 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 878 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 879 | - name: make | ||
| 880 | run: make REDIS_CFLAGS='-Werror' | ||
| 881 | - name: sentinel tests | ||
| 882 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 883 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 884 | |||
| 885 | test-macos-latest-cluster: | ||
| 886 | runs-on: macos-latest | ||
| 887 | if: | | ||
| 888 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 889 | !contains(github.event.inputs.skipjobs, 'macos') && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 890 | timeout-minutes: 14400 | ||
| 891 | steps: | ||
| 892 | - name: prep | ||
| 893 | if: github.event_name == 'workflow_dispatch' | ||
| 894 | run: | | ||
| 895 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 896 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 897 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 898 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 899 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 900 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 901 | - uses: actions/checkout@v4 | ||
| 902 | with: | ||
| 903 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 904 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 905 | - name: make | ||
| 906 | run: make REDIS_CFLAGS='-Werror' | ||
| 907 | - name: cluster tests | ||
| 908 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 909 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 910 | |||
| 911 | build-macos: | ||
| 912 | strategy: | ||
| 913 | matrix: | ||
| 914 | os: [macos-14, macos-26] | ||
| 915 | runs-on: ${{ matrix.os }} | ||
| 916 | if: | | ||
| 917 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 918 | !contains(github.event.inputs.skipjobs, 'macos') | ||
| 919 | timeout-minutes: 14400 | ||
| 920 | steps: | ||
| 921 | - uses: maxim-lobanov/setup-xcode@v1 | ||
| 922 | with: | ||
| 923 | xcode-version: latest | ||
| 924 | - name: prep | ||
| 925 | if: github.event_name == 'workflow_dispatch' | ||
| 926 | run: | | ||
| 927 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 928 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 929 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 930 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 931 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 932 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 933 | - uses: actions/checkout@v4 | ||
| 934 | with: | ||
| 935 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 936 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 937 | - name: make | ||
| 938 | run: make REDIS_CFLAGS='-Werror -DREDIS_TEST' | ||
| 939 | |||
| 940 | test-freebsd: | ||
| 941 | runs-on: ubuntu-latest | ||
| 942 | if: | | ||
| 943 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 944 | !contains(github.event.inputs.skipjobs, 'freebsd') | ||
| 945 | timeout-minutes: 14400 | ||
| 946 | env: | ||
| 947 | CC: clang | ||
| 948 | CXX: clang++ | ||
| 949 | steps: | ||
| 950 | - name: prep | ||
| 951 | if: github.event_name == 'workflow_dispatch' | ||
| 952 | run: | | ||
| 953 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 954 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 955 | - uses: actions/checkout@v4 | ||
| 956 | with: | ||
| 957 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 958 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 959 | - name: test | ||
| 960 | uses: cross-platform-actions/action@v0.30.0 | ||
| 961 | with: | ||
| 962 | operating_system: freebsd | ||
| 963 | environment_variables: MAKE | ||
| 964 | version: 13.2 | ||
| 965 | shell: bash | ||
| 966 | run: | | ||
| 967 | sudo pkg install -y bash gmake lang/tcl86 lang/tclX gcc | ||
| 968 | gmake | ||
| 969 | ./runtest --single unit/keyspace --single unit/auth --single unit/networking --single unit/protocol | ||
| 970 | |||
| 971 | test-alpine-jemalloc: | ||
| 972 | runs-on: ubuntu-latest | ||
| 973 | if: | | ||
| 974 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 975 | !contains(github.event.inputs.skipjobs, 'alpine') | ||
| 976 | container: alpine:latest | ||
| 977 | steps: | ||
| 978 | - name: prep | ||
| 979 | if: github.event_name == 'workflow_dispatch' | ||
| 980 | run: | | ||
| 981 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 982 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 983 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 984 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 985 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 986 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 987 | - uses: actions/checkout@v4 | ||
| 988 | with: | ||
| 989 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 990 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 991 | - name: make | ||
| 992 | run: | | ||
| 993 | apk add build-base | ||
| 994 | make REDIS_CFLAGS='-Werror' | ||
| 995 | - name: testprep | ||
| 996 | run: apk add tcl procps tclx | ||
| 997 | - name: test | ||
| 998 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 999 | run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 1000 | - name: sentinel tests | ||
| 1001 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 1002 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 1003 | - name: cluster tests | ||
| 1004 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 1005 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 1006 | |||
| 1007 | test-alpine-libc-malloc: | ||
| 1008 | runs-on: ubuntu-latest | ||
| 1009 | if: | | ||
| 1010 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 1011 | !contains(github.event.inputs.skipjobs, 'alpine') | ||
| 1012 | container: alpine:latest | ||
| 1013 | steps: | ||
| 1014 | - name: prep | ||
| 1015 | if: github.event_name == 'workflow_dispatch' | ||
| 1016 | run: | | ||
| 1017 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 1018 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 1019 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 1020 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 1021 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 1022 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 1023 | - uses: actions/checkout@v4 | ||
| 1024 | with: | ||
| 1025 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 1026 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 1027 | - name: make | ||
| 1028 | run: | | ||
| 1029 | apk add build-base | ||
| 1030 | make REDIS_CFLAGS='-Werror' USE_JEMALLOC=no CFLAGS=-DUSE_MALLOC_USABLE_SIZE | ||
| 1031 | - name: testprep | ||
| 1032 | run: apk add tcl procps tclx | ||
| 1033 | - name: test | ||
| 1034 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 1035 | run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 1036 | - name: sentinel tests | ||
| 1037 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 1038 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 1039 | - name: cluster tests | ||
| 1040 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 1041 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 1042 | |||
| 1043 | reply-schemas-validator: | ||
| 1044 | runs-on: ubuntu-latest | ||
| 1045 | timeout-minutes: 14400 | ||
| 1046 | if: | | ||
| 1047 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 1048 | !contains(github.event.inputs.skipjobs, 'reply-schema') | ||
| 1049 | steps: | ||
| 1050 | - name: prep | ||
| 1051 | if: github.event_name == 'workflow_dispatch' | ||
| 1052 | run: | | ||
| 1053 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 1054 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 1055 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 1056 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 1057 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 1058 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 1059 | - uses: actions/checkout@v4 | ||
| 1060 | with: | ||
| 1061 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 1062 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 1063 | - name: make | ||
| 1064 | run: make REDIS_CFLAGS='-Werror -DLOG_REQ_RES' | ||
| 1065 | - name: testprep | ||
| 1066 | run: sudo apt-get install tcl8.6 tclx | ||
| 1067 | - name: test | ||
| 1068 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 1069 | run: ./runtest --log-req-res --no-latency --dont-clean --force-resp3 --tags -slow --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 1070 | - name: sentinel tests | ||
| 1071 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 1072 | run: ./runtest-sentinel --log-req-res --dont-clean --force-resp3 ${{github.event.inputs.cluster_test_args}} | ||
| 1073 | - name: cluster tests | ||
| 1074 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 1075 | run: ./runtest-cluster --log-req-res --dont-clean --force-resp3 ${{github.event.inputs.cluster_test_args}} | ||
| 1076 | - name: Install Python dependencies | ||
| 1077 | uses: py-actions/py-dependency-install@v4 | ||
| 1078 | with: | ||
| 1079 | path: "./utils/req-res-validator/requirements.txt" | ||
| 1080 | - name: validator | ||
| 1081 | 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' || '' }} | ||
| 1082 | |||
| 1083 | test-old-chain-jemalloc: | ||
| 1084 | runs-on: ubuntu-latest | ||
| 1085 | if: | | ||
| 1086 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 1087 | !contains(github.event.inputs.skipjobs, 'oldTC') | ||
| 1088 | container: ubuntu:20.04 | ||
| 1089 | timeout-minutes: 14400 | ||
| 1090 | steps: | ||
| 1091 | - name: prep | ||
| 1092 | if: github.event_name == 'workflow_dispatch' | ||
| 1093 | run: | | ||
| 1094 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 1095 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 1096 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 1097 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 1098 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 1099 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 1100 | - uses: actions/checkout@v4 | ||
| 1101 | with: | ||
| 1102 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 1103 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 1104 | - name: make | ||
| 1105 | run: | | ||
| 1106 | apt-get update | ||
| 1107 | apt-get install -y gnupg2 | ||
| 1108 | echo "deb http://archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list | ||
| 1109 | echo "deb http://archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list | ||
| 1110 | apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 | ||
| 1111 | apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 | ||
| 1112 | apt-get update | ||
| 1113 | apt-get install -y make gcc-4.8 g++-4.8 | ||
| 1114 | update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100 | ||
| 1115 | update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100 | ||
| 1116 | make CC=gcc REDIS_CFLAGS='-Werror' | ||
| 1117 | - name: testprep | ||
| 1118 | run: apt-get install -y tcl tcltls tclx | ||
| 1119 | - name: test | ||
| 1120 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 1121 | run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 1122 | - name: sentinel tests | ||
| 1123 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 1124 | run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 1125 | - name: cluster tests | ||
| 1126 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 1127 | run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 1128 | |||
| 1129 | test-old-chain-tls-module: | ||
| 1130 | runs-on: ubuntu-latest | ||
| 1131 | if: | | ||
| 1132 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 1133 | !contains(github.event.inputs.skipjobs, 'tls') && !contains(github.event.inputs.skipjobs, 'oldTC') | ||
| 1134 | container: ubuntu:20.04 | ||
| 1135 | timeout-minutes: 14400 | ||
| 1136 | steps: | ||
| 1137 | - name: prep | ||
| 1138 | if: github.event_name == 'workflow_dispatch' | ||
| 1139 | run: | | ||
| 1140 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 1141 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 1142 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 1143 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 1144 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 1145 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 1146 | - uses: actions/checkout@v4 | ||
| 1147 | with: | ||
| 1148 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 1149 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 1150 | - name: make | ||
| 1151 | run: | | ||
| 1152 | apt-get update | ||
| 1153 | apt-get install -y gnupg2 | ||
| 1154 | echo "deb http://archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list | ||
| 1155 | echo "deb http://archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list | ||
| 1156 | apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 | ||
| 1157 | apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 | ||
| 1158 | apt-get update | ||
| 1159 | apt-get install -y make gcc-4.8 g++-4.8 openssl libssl-dev | ||
| 1160 | update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100 | ||
| 1161 | update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100 | ||
| 1162 | make CC=gcc CXX=g++ BUILD_TLS=module REDIS_CFLAGS='-Werror' | ||
| 1163 | - name: testprep | ||
| 1164 | run: | | ||
| 1165 | apt-get install -y tcl tcltls tclx | ||
| 1166 | ./utils/gen-test-certs.sh | ||
| 1167 | - name: test | ||
| 1168 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 1169 | run: | | ||
| 1170 | ./runtest --accurate --verbose --dump-logs --tls-module --dump-logs ${{github.event.inputs.test_args}} | ||
| 1171 | - name: sentinel tests | ||
| 1172 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 1173 | run: | | ||
| 1174 | ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 1175 | - name: cluster tests | ||
| 1176 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 1177 | run: | | ||
| 1178 | ./runtest-cluster --tls-module ${{github.event.inputs.cluster_test_args}} | ||
| 1179 | |||
| 1180 | test-old-chain-tls-module-no-tls: | ||
| 1181 | runs-on: ubuntu-latest | ||
| 1182 | if: | | ||
| 1183 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 1184 | !contains(github.event.inputs.skipjobs, 'tls') && !contains(github.event.inputs.skipjobs, 'oldTC') | ||
| 1185 | container: ubuntu:20.04 | ||
| 1186 | timeout-minutes: 14400 | ||
| 1187 | steps: | ||
| 1188 | - name: prep | ||
| 1189 | if: github.event_name == 'workflow_dispatch' | ||
| 1190 | run: | | ||
| 1191 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 1192 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 1193 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 1194 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 1195 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 1196 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 1197 | - uses: actions/checkout@v4 | ||
| 1198 | with: | ||
| 1199 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 1200 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 1201 | - name: make | ||
| 1202 | run: | | ||
| 1203 | apt-get update | ||
| 1204 | apt-get install -y gnupg2 | ||
| 1205 | echo "deb http://archive.ubuntu.com/ubuntu/ xenial main" >> /etc/apt/sources.list | ||
| 1206 | echo "deb http://archive.ubuntu.com/ubuntu/ xenial universe" >> /etc/apt/sources.list | ||
| 1207 | apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 | ||
| 1208 | apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 | ||
| 1209 | apt-get update | ||
| 1210 | apt-get install -y make gcc-4.8 g++-4.8 openssl libssl-dev | ||
| 1211 | update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100 | ||
| 1212 | update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100 | ||
| 1213 | make BUILD_TLS=module CC=gcc REDIS_CFLAGS='-Werror' | ||
| 1214 | - name: testprep | ||
| 1215 | run: | | ||
| 1216 | apt-get install -y tcl tcltls tclx | ||
| 1217 | ./utils/gen-test-certs.sh | ||
| 1218 | - name: test | ||
| 1219 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 1220 | run: | | ||
| 1221 | ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
| 1222 | - name: sentinel tests | ||
| 1223 | if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
| 1224 | run: | | ||
| 1225 | ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
| 1226 | - name: cluster tests | ||
| 1227 | if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
| 1228 | run: | | ||
| 1229 | ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
| 1230 | |||
| 1231 | test-sanitizer-force-defrag: | ||
| 1232 | runs-on: ubuntu-latest | ||
| 1233 | if: | | ||
| 1234 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 1235 | !contains(github.event.inputs.skipjobs, 'defrag') | ||
| 1236 | timeout-minutes: 14400 | ||
| 1237 | steps: | ||
| 1238 | - name: prep | ||
| 1239 | if: github.event_name == 'workflow_dispatch' | ||
| 1240 | run: | | ||
| 1241 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 1242 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 1243 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 1244 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 1245 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 1246 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 1247 | - uses: actions/checkout@v4 | ||
| 1248 | with: | ||
| 1249 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 1250 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 1251 | - name: make | ||
| 1252 | run: make SANITIZER=address DEBUG_DEFRAG=force REDIS_CFLAGS='-Werror' | ||
| 1253 | - name: testprep | ||
| 1254 | run: sudo apt-get install tcl8.6 tclx | ||
| 1255 | - name: test | ||
| 1256 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 1257 | run: ./runtest --debug-defrag --verbose --clients 1 ${{github.event.inputs.test_args}} | ||
| 1258 | |||
| 1259 | test-vectorset: | ||
| 1260 | runs-on: ubuntu-latest | ||
| 1261 | if: | | ||
| 1262 | (github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) && | ||
| 1263 | !contains(github.event.inputs.skipjobs, 'vectorset') | ||
| 1264 | timeout-minutes: 14400 | ||
| 1265 | steps: | ||
| 1266 | - name: prep | ||
| 1267 | if: github.event_name == 'workflow_dispatch' | ||
| 1268 | run: | | ||
| 1269 | echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
| 1270 | echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
| 1271 | echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
| 1272 | echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
| 1273 | echo "test_args: ${{github.event.inputs.test_args}}" | ||
| 1274 | echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
| 1275 | - uses: actions/checkout@v4 | ||
| 1276 | with: | ||
| 1277 | repository: ${{ env.GITHUB_REPOSITORY }} | ||
| 1278 | ref: ${{ env.GITHUB_HEAD_REF }} | ||
| 1279 | - name: make | ||
| 1280 | run: make REDIS_CFLAGS='-Werror -DREDIS_TEST' | ||
| 1281 | - name: testprep | ||
| 1282 | run: | | ||
| 1283 | sudo apt-get install tcl8.6 tclx | ||
| 1284 | sudo pip install redis | ||
| 1285 | - name: test | ||
| 1286 | if: true && !contains(github.event.inputs.skiptests, 'redis') | ||
| 1287 | 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 @@ | |||
| 1 | name: External Server Tests | ||
| 2 | |||
| 3 | on: | ||
| 4 | pull_request: | ||
| 5 | push: | ||
| 6 | schedule: | ||
| 7 | - cron: '0 0 * * *' | ||
| 8 | |||
| 9 | jobs: | ||
| 10 | test-external-standalone: | ||
| 11 | runs-on: ubuntu-latest | ||
| 12 | if: github.event_name != 'schedule' || github.repository == 'redis/redis' | ||
| 13 | timeout-minutes: 14400 | ||
| 14 | steps: | ||
| 15 | - uses: actions/checkout@v4 | ||
| 16 | - name: Build | ||
| 17 | run: make REDIS_CFLAGS=-Werror | ||
| 18 | - name: Start redis-server | ||
| 19 | run: | | ||
| 20 | ./src/redis-server --daemonize yes --save "" --logfile external-redis.log \ | ||
| 21 | --enable-protected-configs yes --enable-debug-command yes --enable-module-command yes | ||
| 22 | - name: Run external test | ||
| 23 | run: | | ||
| 24 | ./runtest \ | ||
| 25 | --host 127.0.0.1 --port 6379 \ | ||
| 26 | --verbose \ | ||
| 27 | --tags -slow | ||
| 28 | - name: Archive redis log | ||
| 29 | if: ${{ failure() }} | ||
| 30 | uses: actions/upload-artifact@v4 | ||
| 31 | with: | ||
| 32 | name: test-external-redis-log | ||
| 33 | path: external-redis.log | ||
| 34 | |||
| 35 | test-external-cluster: | ||
| 36 | runs-on: ubuntu-latest | ||
| 37 | if: github.event_name != 'schedule' || github.repository == 'redis/redis' | ||
| 38 | timeout-minutes: 14400 | ||
| 39 | steps: | ||
| 40 | - uses: actions/checkout@v4 | ||
| 41 | - name: Build | ||
| 42 | run: make REDIS_CFLAGS=-Werror | ||
| 43 | - name: Start redis-server | ||
| 44 | run: | | ||
| 45 | ./src/redis-server --cluster-enabled yes --daemonize yes --save "" --logfile external-redis-cluster.log \ | ||
| 46 | --enable-protected-configs yes --enable-debug-command yes --enable-module-command yes | ||
| 47 | - name: Create a single node cluster | ||
| 48 | run: ./src/redis-cli cluster addslots $(for slot in {0..16383}; do echo $slot; done); sleep 5 | ||
| 49 | - name: Run external test | ||
| 50 | run: | | ||
| 51 | ./runtest \ | ||
| 52 | --host 127.0.0.1 --port 6379 \ | ||
| 53 | --verbose \ | ||
| 54 | --cluster-mode \ | ||
| 55 | --tags -slow | ||
| 56 | - name: Archive redis log | ||
| 57 | if: ${{ failure() }} | ||
| 58 | uses: actions/upload-artifact@v4 | ||
| 59 | with: | ||
| 60 | name: test-external-cluster-log | ||
| 61 | path: external-redis-cluster.log | ||
| 62 | |||
| 63 | test-external-nodebug: | ||
| 64 | runs-on: ubuntu-latest | ||
| 65 | if: github.event_name != 'schedule' || github.repository == 'redis/redis' | ||
| 66 | timeout-minutes: 14400 | ||
| 67 | steps: | ||
| 68 | - uses: actions/checkout@v4 | ||
| 69 | - name: Build | ||
| 70 | run: make REDIS_CFLAGS=-Werror | ||
| 71 | - name: Start redis-server | ||
| 72 | run: | | ||
| 73 | ./src/redis-server --daemonize yes --save "" --logfile external-redis-nodebug.log | ||
| 74 | - name: Run external test | ||
| 75 | run: | | ||
| 76 | ./runtest \ | ||
| 77 | --host 127.0.0.1 --port 6379 \ | ||
| 78 | --verbose \ | ||
| 79 | --tags "-slow -needs:debug" | ||
| 80 | - name: Archive redis log | ||
| 81 | if: ${{ failure() }} | ||
| 82 | uses: actions/upload-artifact@v4 | ||
| 83 | with: | ||
| 84 | name: test-external-redis-nodebug-log | ||
| 85 | 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 @@ | |||
| 1 | name: redis_docs_sync | ||
| 2 | |||
| 3 | on: | ||
| 4 | release: | ||
| 5 | types: [published] | ||
| 6 | |||
| 7 | jobs: | ||
| 8 | redis_docs_sync: | ||
| 9 | if: github.repository == 'redis/redis' | ||
| 10 | runs-on: ubuntu-latest | ||
| 11 | steps: | ||
| 12 | - name: Generate a token | ||
| 13 | id: generate-token | ||
| 14 | uses: actions/create-github-app-token@v1 | ||
| 15 | with: | ||
| 16 | app-id: ${{ secrets.DOCS_APP_ID }} | ||
| 17 | private-key: ${{ secrets.DOCS_APP_PRIVATE_KEY }} | ||
| 18 | |||
| 19 | - name: Invoke workflow on redis/docs | ||
| 20 | env: | ||
| 21 | GH_TOKEN: ${{ steps.generate-token.outputs.token }} | ||
| 22 | RELEASE_NAME: ${{ github.event.release.tag_name }} | ||
| 23 | run: | | ||
| 24 | LATEST_RELEASE=$( | ||
| 25 | curl -Ls \ | ||
| 26 | -H "Accept: application/vnd.github+json" \ | ||
| 27 | -H "Authorization: Bearer ${GH_TOKEN}" \ | ||
| 28 | -H "X-GitHub-Api-Version: 2022-11-28" \ | ||
| 29 | https://api.github.com/repos/redis/redis/releases/latest \ | ||
| 30 | | jq -r '.tag_name' | ||
| 31 | ) | ||
| 32 | |||
| 33 | if [[ "${LATEST_RELEASE}" == "${RELEASE_NAME}" ]]; then | ||
| 34 | gh workflow run -R redis/docs redis_docs_sync.yaml -f release="${RELEASE_NAME}" | ||
| 35 | 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 @@ | |||
| 1 | name: Reply-schemas linter | ||
| 2 | |||
| 3 | on: | ||
| 4 | push: | ||
| 5 | paths: | ||
| 6 | - 'src/commands/*.json' | ||
| 7 | pull_request: | ||
| 8 | paths: | ||
| 9 | - 'src/commands/*.json' | ||
| 10 | |||
| 11 | jobs: | ||
| 12 | reply-schemas-linter: | ||
| 13 | runs-on: ubuntu-latest | ||
| 14 | steps: | ||
| 15 | - uses: actions/checkout@v4 | ||
| 16 | - name: Setup nodejs | ||
| 17 | uses: actions/setup-node@v4 | ||
| 18 | - name: Install packages | ||
| 19 | run: npm install ajv | ||
| 20 | - name: linter | ||
| 21 | run: node ./utils/reply_schema_linter.js | ||
| 22 | |||
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 @@ | |||
| 1 | # A CI action that using codespell to check spell. | ||
| 2 | # .github/.codespellrc is a config file. | ||
| 3 | # .github/wordlist.txt is a list of words that will ignore word checks. | ||
| 4 | # More details please check the following link: | ||
| 5 | # https://github.com/codespell-project/codespell | ||
| 6 | name: Spellcheck | ||
| 7 | |||
| 8 | on: | ||
| 9 | push: | ||
| 10 | pull_request: | ||
| 11 | |||
| 12 | jobs: | ||
| 13 | build: | ||
| 14 | name: Spellcheck | ||
| 15 | runs-on: ubuntu-latest | ||
| 16 | |||
| 17 | steps: | ||
| 18 | - name: Checkout repository | ||
| 19 | uses: actions/checkout@v4 | ||
| 20 | |||
| 21 | - name: pip cache | ||
| 22 | uses: actions/cache@v4 | ||
| 23 | with: | ||
| 24 | path: ~/.cache/pip | ||
| 25 | key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | ||
| 26 | restore-keys: ${{ runner.os }}-pip- | ||
| 27 | |||
| 28 | - name: Install prerequisites | ||
| 29 | run: sudo pip install -r ./.codespell/requirements.txt | ||
| 30 | |||
| 31 | - name: Spell check | ||
| 32 | run: codespell --config=./.codespell/.codespellrc | ||
