123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492 |
- 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,tls,freebsd,macos,alpine,32bit'
- skiptests:
- description: 'tests to skip (delete the ones you wanna keep, do not leave empty)'
- default: 'redis,modules,sentinel,cluster'
- 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.repository == 'redis/redis'
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- echo "skipping: ${{github.event.inputs.skipjobs}} and ${{github.event.inputs.skiptests}}"
- - uses: actions/checkout@v2
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make REDIS_CFLAGS='-Werror -DREDIS_TEST'
- - name: testprep
- run: sudo apt-get install tcl8.6 tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: module api test
- if: true && !contains(github.event.inputs.skiptests, 'modules')
- run: ./runtest-moduleapi --verbose ${{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
- run: ./src/redis-server test all
- test-ubuntu-libc-malloc:
- runs-on: ubuntu-latest
- if: github.repository == 'redis/redis'
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make MALLOC=libc
- - 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: module api test
- if: true && !contains(github.event.inputs.skiptests, 'modules')
- run: ./runtest-moduleapi --verbose ${{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.repository == 'redis/redis'
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make MALLOC=libc CFLAGS=-DNO_MALLOC_USABLE_SIZE
- - 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: module api test
- if: true && !contains(github.event.inputs.skiptests, 'modules')
- run: ./runtest-moduleapi --verbose ${{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.repository == 'redis/redis' && !contains(github.event.inputs.skipjobs, '32bit')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- sudo apt-get update && sudo apt-get install libc6-dev-i386
- make 32bit REDIS_CFLAGS='-Werror -DREDIS_TEST'
- - name: testprep
- run: sudo apt-get install tcl8.6 tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: module api test
- if: true && !contains(github.event.inputs.skiptests, 'modules')
- run: |
- make -C tests/modules 32bit # the script below doesn't have an argument, we must build manually ahead of time
- ./runtest-moduleapi --verbose ${{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
- run: ./src/redis-server test all
- test-ubuntu-tls:
- runs-on: ubuntu-latest
- if: github.repository == 'redis/redis' && !contains(github.event.inputs.skipjobs, 'tls')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- make BUILD_TLS=yes
- - 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 --tls --dump-logs ${{github.event.inputs.test_args}}
- ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: module api test
- if: true && !contains(github.event.inputs.skiptests, 'modules')
- run: |
- ./runtest-moduleapi --verbose --tls ${{github.event.inputs.test_args}}
- ./runtest-moduleapi --verbose ${{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}}
- ./runtest-sentinel ${{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}}
- ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
- test-ubuntu-io-threads:
- runs-on: ubuntu-latest
- if: github.repository == 'redis/redis' && !contains(github.event.inputs.skipjobs, 'iothreads')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- make
- - 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 --config io-threads-do-reads yes --accurate --verbose --tags network --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 --config io-threads-do-reads yes ${{github.event.inputs.cluster_test_args}}
- test-valgrind:
- runs-on: ubuntu-latest
- if: github.repository == 'redis/redis' && !contains(github.event.inputs.skipjobs, 'valgrind')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- 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')
- run: ./runtest --valgrind --verbose --clients 1 --tags -large-memory --dump-logs ${{github.event.inputs.test_args}}
- - name: module api test
- if: true && !contains(github.event.inputs.skiptests, 'modules')
- run: ./runtest-moduleapi --valgrind --no-latency --verbose --clients 1 ${{github.event.inputs.test_args}}
- - name: 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
- if grep -q 0x err.txt; then cat err.txt; exit 1; fi
- test-valgrind-no-malloc-usable-size:
- runs-on: ubuntu-latest
- if: github.repository == 'redis/redis' && !contains(github.event.inputs.skipjobs, 'valgrind')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make valgrind CFLAGS="-DNO_MALLOC_USABLE_SIZE"
- - 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 --verbose --clients 1 --tags -large-memory --dump-logs ${{github.event.inputs.test_args}}
- - name: module api test
- if: true && !contains(github.event.inputs.skiptests, 'modules')
- run: ./runtest-moduleapi --valgrind --no-latency --verbose --clients 1 ${{github.event.inputs.test_args}}
- test-centos7-jemalloc:
- runs-on: ubuntu-latest
- if: github.repository == 'redis/redis'
- container: centos:7
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- yum -y install gcc make
- make
- - name: testprep
- run: yum -y install which tcl tclx
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: module api test
- if: true && !contains(github.event.inputs.skiptests, 'modules')
- run: ./runtest-moduleapi --verbose ${{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-centos7-tls:
- runs-on: ubuntu-latest
- if: github.repository == 'redis/redis' && !contains(github.event.inputs.skipjobs, 'tls')
- container: centos:7
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: |
- yum -y install centos-release-scl epel-release
- yum -y install devtoolset-7 openssl-devel openssl
- scl enable devtoolset-7 "make BUILD_TLS=yes"
- - name: testprep
- run: |
- yum -y install tcl tcltls tclx
- ./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}}
- ./runtest --accurate --verbose --dump-logs ${{github.event.inputs.test_args}}
- - name: module api test
- if: true && !contains(github.event.inputs.skiptests, 'modules')
- run: |
- ./runtest-moduleapi --verbose --tls ${{github.event.inputs.test_args}}
- ./runtest-moduleapi --verbose ${{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}}
- ./runtest-sentinel ${{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}}
- ./runtest-cluster ${{github.event.inputs.cluster_test_args}}
- test-macos-latest:
- runs-on: macos-latest
- if: github.repository == 'redis/redis' && !contains(github.event.inputs.skipjobs, 'macos')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: make
- run: make
- - name: test
- if: true && !contains(github.event.inputs.skiptests, 'redis')
- run: ./runtest --accurate --verbose --no-latency --dump-logs ${{github.event.inputs.test_args}}
- - name: module api test
- if: true && !contains(github.event.inputs.skiptests, 'modules')
- run: ./runtest-moduleapi --verbose ${{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-freebsd:
- runs-on: macos-10.15
- if: github.repository == 'redis/redis' && !contains(github.event.inputs.skipjobs, 'freebsd')
- timeout-minutes: 14400
- steps:
- - name: prep
- if: github.event_name == 'workflow_dispatch'
- run: |
- echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV
- echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV
- - uses: actions/checkout@v2
- with:
- repository: ${{ env.GITHUB_REPOSITORY }}
- ref: ${{ env.GITHUB_HEAD_REF }}
- - name: test
- uses: vmactions/freebsd-vm@v0.1.4
- with:
- usesh: true
- sync: rsync
- prepare: pkg install -y bash gmake lang/tcl86 lang/tclx
- run: >
- gmake || exit 1 ;
- if echo "${{github.event.inputs.skiptests}}" | grep -vq redis ; then ./runtest --accurate --verbose --no-latency --tags -large-memory --dump-logs ${{github.event.inputs.test_args}} || exit 1 ; fi ;
- if echo "${{github.event.inputs.skiptests}}" | grep -vq modules ; then MAKE=gmake ./runtest-moduleapi --verbose ${{github.event.inputs.test_args}} || exit 1 ; fi ;
- if echo "${{github.event.inputs.skiptests}}" | grep -vq sentinel ; then ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} || exit 1 ; fi ;
- if echo "${{github.event.inputs.skiptests}}" | grep -vq cluster ; then ./runtest-cluster ${{github.event.inputs.cluster_test_args}} || exit 1 ; fi ;
- test-alpine-jemalloc:
- runs-on: ubuntu-latest
- if: 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
- - uses: actions/checkout@v2
- 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: module api test
- if: true && !contains(github.event.inputs.skiptests, 'modules')
- run: ./runtest-moduleapi --verbose ${{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.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
- - uses: actions/checkout@v2
- 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: module api test
- if: true && !contains(github.event.inputs.skiptests, 'modules')
- run: ./runtest-moduleapi --verbose ${{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}}
|