mirror of
https://github.com/redis/redis.git
synced 2026-06-09 00:33:08 -04:00
### Problem Node.js 20 actions are deprecated. The warning in CI like that: > Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ ### Changed Upgrade actions to their latest stable versions: 1. `actions/upload-artifact` v4 => v7 2. `actions/checkout` v4 => v6 3. `actions/checkout` main => v6 4. `actions/create-github-app-token` v1 => v3 5. `github/codeql-action` v3 => v4 6. `actions/cache` v4 => v5 7. `actions/setup-node` v4 => v6
1432 lines
65 KiB
YAML
1432 lines
65 KiB
YAML
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,assert-keyspace,arm'
|
|
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: 360
|
|
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@v6
|
|
with:
|
|
repository: ${{ env.GITHUB_REPOSITORY }}
|
|
ref: ${{ env.GITHUB_HEAD_REF }}
|
|
- name: make
|
|
run: make REDIS_CFLAGS='-Werror -DREDIS_TEST -DDEBUG_ASSERTIONS'
|
|
- 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-arm:
|
|
runs-on: ubuntu-24.04-arm
|
|
if: |
|
|
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
|
|
!contains(github.event.inputs.skipjobs, 'arm')
|
|
timeout-minutes: 360
|
|
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@v6
|
|
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 update
|
|
sudo apt-get install -y 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-arm-libc-malloc:
|
|
runs-on: ubuntu-24.04-arm
|
|
if: |
|
|
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
|
|
(!contains(github.event.inputs.skipjobs, 'arm') || !contains(github.event.inputs.skipjobs, 'malloc'))
|
|
timeout-minutes: 360
|
|
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@v6
|
|
with:
|
|
repository: ${{ env.GITHUB_REPOSITORY }}
|
|
ref: ${{ env.GITHUB_HEAD_REF }}
|
|
- name: make
|
|
run: make MALLOC=libc REDIS_CFLAGS='-Werror -DREDIS_TEST'
|
|
- name: testprep
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y 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-arm-tls:
|
|
runs-on: ubuntu-24.04-arm
|
|
if: |
|
|
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
|
|
(!contains(github.event.inputs.skipjobs, 'arm') || !contains(github.event.inputs.skipjobs, 'tls'))
|
|
timeout-minutes: 360
|
|
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@v6
|
|
with:
|
|
repository: ${{ env.GITHUB_REPOSITORY }}
|
|
ref: ${{ env.GITHUB_HEAD_REF }}
|
|
- name: make
|
|
run: make BUILD_TLS=yes REDIS_CFLAGS='-Werror -DREDIS_TEST'
|
|
- name: testprep
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y tcl8.6 tclx tcl-tls
|
|
./utils/gen-test-certs.sh
|
|
- name: test
|
|
if: true && !contains(github.event.inputs.skiptests, 'redis')
|
|
run: ./runtest --accurate --verbose --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 with DEBUG_ASSERT_KEYSPACE enabled to verify keyspace consistency.
|
|
# This enables additional runtime checks after each command for:
|
|
# - Info keysizes histogram
|
|
# - Cluster slot stats
|
|
# Skips slow and defrag tests to avoid timeouts while maintaining good coverage.
|
|
test-debug-assert-keyspace:
|
|
runs-on: ubuntu-latest
|
|
if: |
|
|
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'redis/redis')) &&
|
|
!contains(github.event.inputs.skipjobs, 'assert-keyspace')
|
|
timeout-minutes: 360
|
|
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@v6
|
|
with:
|
|
repository: ${{ env.GITHUB_REPOSITORY }}
|
|
ref: ${{ env.GITHUB_HEAD_REF }}
|
|
- name: make
|
|
run: make REDIS_CFLAGS='-Werror -DREDIS_TEST -DDEBUG_ASSERT_KEYSPACE -DDEBUG_ASSERTIONS'
|
|
- name: testprep
|
|
run: sudo apt-get install tcl8.6 tclx
|
|
- name: test
|
|
if: true && !contains(github.event.inputs.skiptests, 'redis')
|
|
run: |
|
|
./runtest --verbose --tags "-slow -defrag" \
|
|
--dump-logs ${{github.event.inputs.test_args}}
|
|
- name: cluster tests
|
|
if: true && !contains(github.event.inputs.skiptests, 'cluster')
|
|
run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
|
|
|
|
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: 360
|
|
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@v6
|
|
with:
|
|
repository: ${{ env.GITHUB_REPOSITORY }}
|
|
ref: ${{ env.GITHUB_HEAD_REF }}
|
|
- name: make
|
|
run: |
|
|
apt-get update && apt-get install -y make gcc
|
|
# Also enables jemalloc's sized deallocation checks to catch sdallocx()/zfree_with_size() misuse.
|
|
make CC=gcc REDIS_CFLAGS='-Werror -DREDIS_TEST -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3' JEMALLOC_CONFIGURE_OPTS='--enable-opt-size-checks'
|
|
- 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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
with:
|
|
repository: ${{ env.GITHUB_REPOSITORY }}
|
|
ref: ${{ env.GITHUB_HEAD_REF }}
|
|
- name: make
|
|
run: |
|
|
sudo apt-get update && sudo apt-get install libc6-dev-i386 gcc-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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
with:
|
|
repository: ${{ env.GITHUB_REPOSITORY }}
|
|
ref: ${{ env.GITHUB_HEAD_REF }}
|
|
- name: make
|
|
run: |
|
|
dnf -y install which gcc make
|
|
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: 360
|
|
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@v6
|
|
with:
|
|
repository: ${{ env.GITHUB_REPOSITORY }}
|
|
ref: ${{ env.GITHUB_HEAD_REF }}
|
|
- name: make
|
|
run: |
|
|
dnf -y install which gcc make openssl-devel openssl
|
|
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: 360
|
|
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@v6
|
|
with:
|
|
repository: ${{ env.GITHUB_REPOSITORY }}
|
|
ref: ${{ env.GITHUB_HEAD_REF }}
|
|
- name: make
|
|
run: |
|
|
dnf -y install which gcc make openssl-devel openssl
|
|
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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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@v6
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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@30aa0023464ed4b5b116bd9fbdab87acf01a484e # v4.1.0
|
|
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: 360
|
|
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@v6
|
|
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
|
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-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: 360
|
|
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@v6
|
|
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 openssl libssl-dev
|
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
|
|
make CC=gcc 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: 360
|
|
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@v6
|
|
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 openssl libssl-dev
|
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-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: 360
|
|
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@v6
|
|
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: 360
|
|
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@v6
|
|
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}}
|