Disable some workflows since I don't want to burn through the free tier #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Daily | ||
on: | ||
pull_request: | ||
branches: | ||
# any PR to a release branch. | ||
# - '[0-9].[0-9]' | ||
schedule: | ||
# - cron: '0 0 * * *' We don't have the resources for this atm. Will enable later | ||
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' | ||
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: 'madolson/placeholderkv' | ||
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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'ubuntu') | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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: CFLAGS='-Werror' ./runtest-moduleapi --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/placeholderkv-server test all --accurate | ||
test-ubuntu-jemalloc-fortify: | ||
runs-on: ubuntu-latest | ||
if: | | ||
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'fortify') | ||
container: ubuntu:lunar | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
with: | ||
repository: ${{ env.GITHUB_REPOSITORY }} | ||
ref: ${{ env.GITHUB_HEAD_REF }} | ||
- name: make | ||
run: | | ||
apt-get update && apt-get install -y make gcc-13 | ||
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 100 | ||
make CC=gcc REDIS_CFLAGS='-Werror -DREDIS_TEST -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3' | ||
- name: testprep | ||
run: 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: module api test | ||
if: true && !contains(github.event.inputs.skiptests, 'modules') | ||
run: CFLAGS='-Werror' ./runtest-moduleapi --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/placeholderkv-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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'malloc') | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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: module api test | ||
if: true && !contains(github.event.inputs.skiptests, 'modules') | ||
run: CFLAGS='-Werror' ./runtest-moduleapi --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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'malloc') | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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: module api test | ||
if: true && !contains(github.event.inputs.skiptests, 'modules') | ||
run: CFLAGS='-Werror' ./runtest-moduleapi --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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, '32bit') | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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 | ||
CFLAGS='-Werror' ./runtest-moduleapi --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/placeholderkv-server test all --accurate | ||
test-ubuntu-tls: | ||
runs-on: ubuntu-latest | ||
if: | | ||
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'tls') | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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: module api test | ||
if: true && !contains(github.event.inputs.skiptests, 'modules') | ||
run: | | ||
CFLAGS='-Werror' ./runtest-moduleapi --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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'tls') | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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: module api test | ||
if: true && !contains(github.event.inputs.skiptests, 'modules') | ||
run: | | ||
CFLAGS='-Werror' ./runtest-moduleapi --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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'iothreads') | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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 --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-ubuntu-reclaim-cache: | ||
runs-on: ubuntu-latest | ||
if: | | ||
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'specific') | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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/placeholderkv-server --daemonize yes --logfile /dev/null | ||
./src/placeholderkv-benchmark -n 1 > /dev/null | ||
./src/placeholderkv-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/placeholderkv-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/placeholderkv-cli -p 8080 debug populate 10000 k 102400 | ||
./src/placeholderkv-server --daemonize yes --logfile /dev/null --dir /tmp/slave --port 8081 --repl-diskless-load disabled --rdbcompression no | ||
./src/placeholderkv-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/placeholderkv-cli -p 8081 REPLICAOF 127.0.0.1 8080 > /dev/null | ||
while [ $(./src/placeholderkv-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/placeholderkv-server --daemonize yes --logfile /dev/null --dir /tmp/master --port 8080 | ||
while [ $(./src/placeholderkv-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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'valgrind') && !contains(github.event.inputs.skiptests, 'redis') | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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 --no-latency --verbose --clients 1 --timeout 2400 --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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'valgrind') && !(contains(github.event.inputs.skiptests, 'modules') && contains(github.event.inputs.skiptests, 'unittest')) | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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: module api test | ||
if: true && !contains(github.event.inputs.skiptests, 'modules') | ||
run: CFLAGS='-Werror' ./runtest-moduleapi --valgrind --no-latency --verbose --clients 1 --timeout 2400 --dump-logs ${{github.event.inputs.test_args}} | ||
- 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/placeholderkv-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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'valgrind') && !contains(github.event.inputs.skiptests, 'redis') | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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 --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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'valgrind') && !(contains(github.event.inputs.skiptests, 'modules') && contains(github.event.inputs.skiptests, 'unittest')) | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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: module api test | ||
if: true && !contains(github.event.inputs.skiptests, 'modules') | ||
run: CFLAGS='-Werror' ./runtest-moduleapi --valgrind --no-latency --verbose --clients 1 --timeout 2400 --dump-logs ${{github.event.inputs.test_args}} | ||
- 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/placeholderkv-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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'sanitizer') | ||
timeout-minutes: 14400 | ||
strategy: | ||
matrix: | ||
compiler: [ gcc, clang ] | ||
env: | ||
CC: ${{ matrix.compiler }} | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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 | ||
# Work around ASAN issue, see https://github.com/google/sanitizers/issues/1716 | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install tcl8.6 tclx -y | ||
sudo sysctl vm.mmap_rnd_bits=28 | ||
- 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: CFLAGS='-Werror' ./runtest-moduleapi --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/placeholderkv-server test all | ||
test-sanitizer-undefined: | ||
runs-on: ubuntu-latest | ||
if: | | ||
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'sanitizer') | ||
timeout-minutes: 14400 | ||
strategy: | ||
matrix: | ||
compiler: [ gcc, clang ] | ||
env: | ||
CC: ${{ matrix.compiler }} | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
with: | ||
repository: ${{ env.GITHUB_REPOSITORY }} | ||
ref: ${{ env.GITHUB_HEAD_REF }} | ||
- name: make | ||
run: make SANITIZER=undefined REDIS_CFLAGS='-DREDIS_TEST -Werror' 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: module api test | ||
if: true && !contains(github.event.inputs.skiptests, 'modules') | ||
run: CFLAGS='-Werror' ./runtest-moduleapi --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/placeholderkv-server test all --accurate | ||
test-centos7-jemalloc: | ||
runs-on: ubuntu-latest | ||
if: | | ||
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'centos') | ||
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 | ||
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@v3 | ||
with: | ||
repository: ${{ env.GITHUB_REPOSITORY }} | ||
ref: ${{ env.GITHUB_HEAD_REF }} | ||
- name: make | ||
run: | | ||
yum -y install gcc make | ||
make REDIS_CFLAGS='-Werror' | ||
- 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: CFLAGS='-Werror' ./runtest-moduleapi --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-centos7-tls-module: | ||
runs-on: ubuntu-latest | ||
if: | | ||
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'madolson/placeholderkv')) && | ||
!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 | ||
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@v3 | ||
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=module REDIS_CFLAGS='-Werror'" | ||
- 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 --dump-logs --tls-module --dump-logs ${{github.event.inputs.test_args}} | ||
- name: module api test | ||
if: true && !contains(github.event.inputs.skiptests, 'modules') | ||
run: | | ||
CFLAGS='-Werror' ./runtest-moduleapi --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-centos7-tls-module-no-tls: | ||
runs-on: ubuntu-latest | ||
if: | | ||
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'madolson/placeholderkv')) && | ||
!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 | ||
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@v3 | ||
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=module REDIS_CFLAGS='-Werror'" | ||
- 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 --dump-logs ${{github.event.inputs.test_args}} | ||
- name: module api test | ||
if: true && !contains(github.event.inputs.skiptests, 'modules') | ||
run: | | ||
CFLAGS='-Werror' ./runtest-moduleapi --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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'macos') && !(contains(github.event.inputs.skiptests, 'redis') && contains(github.event.inputs.skiptests, 'modules')) | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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}} | ||
- name: module api test | ||
if: true && !contains(github.event.inputs.skiptests, 'modules') | ||
run: CFLAGS='-Werror' ./runtest-moduleapi --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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'macos') && !contains(github.event.inputs.skiptests, 'sentinel') | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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 == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'macos') && !contains(github.event.inputs.skiptests, 'cluster') | ||
timeout-minutes: 14400 | ||
steps: | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
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-11, macos-13] | ||
runs-on: ${{ matrix.os }} | ||
if: | | ||
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'madolson/placeholderkv')) && | ||
!contains(github.event.inputs.skipjobs, 'macos') | ||
timeout-minutes: 14400 | ||
steps: | ||
- uses: maxim-lobanov/setup-xcode@v1 | ||
with: | ||
xcode-version: latest | ||
- name: prep | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "GITHUB_REPOSITORY=${{github.event.inputs.use_repo}}" >> $GITHUB_ENV | ||
echo "GITHUB_HEAD_REF=${{github.event.inputs.use_git_ref}}" >> $GITHUB_ENV | ||
echo "skipjobs: ${{github.event.inputs.skipjobs}}" | ||
echo "skiptests: ${{github.event.inputs.skiptests}}" | ||
echo "test_args: ${{github.event.inputs.test_args}}" | ||
echo "cluster_test_args: ${{github.event.inputs.cluster_test_args}}" | ||
- uses: actions/checkout@v3 | ||
with: | ||
repository: ${{ env.GITHUB_REPOSITORY }} | ||
ref: ${{ env.GITHUB_HEAD_REF }} | ||
- name: make | ||
run: make REDIS_CFLAGS='-Werror -DREDIS_TEST' | ||
test-freebsd: | ||
runs-on: macos-12 | ||
if: | | ||
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'madolson/placeholderkv')) && | ||
!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@v3 | ||
with: | ||
repository: ${{ env.GITHUB_REPOSITORY }} | ||
ref: ${{ env.GITHUB_HEAD_REF }} | ||
- name: test | ||
uses: cross-platform-actions/[email protected] | ||
with: | ||
operating_system: freebsd | ||
environment_variables: MAKE | ||
version: 13.2 | ||
shell: bash | ||
run: | | ||
sudo pkg install -y bash gmake lang/tcl86 lang/tclx | ||
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 == 'madolson/placeholderkv')) && | ||
!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@v3 | ||
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: CFLAGS='-Werror' ./runtest-moduleapi --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 == 'madolson/placeholderkv')) && | ||
!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@v3 | ||
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: CFLAGS='-Werror' ./runtest-moduleapi --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
- name: sentinel tests | ||
if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
run: ./runtest-sentinel ${{github.event.inputs.cluster_test_args}} | ||
- name: cluster tests | ||
if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
run: ./runtest-cluster ${{github.event.inputs.cluster_test_args}} | ||
reply-schemas-validator: | ||
runs-on: ubuntu-latest | ||
timeout-minutes: 14400 | ||
if: | | ||
(github.event_name == 'workflow_dispatch' || (github.event_name != 'workflow_dispatch' && github.repository == 'madolson/placeholderkv')) && | ||
!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@v3 | ||
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: module api test | ||
if: true && !contains(github.event.inputs.skiptests, 'modules') | ||
run: CFLAGS='-Werror' ./runtest-moduleapi --log-req-res --no-latency --dont-clean --force-resp3 --dont-pre-clean --verbose --dump-logs ${{github.event.inputs.test_args}} | ||
- name: sentinel tests | ||
if: true && !contains(github.event.inputs.skiptests, 'sentinel') | ||
run: ./runtest-sentinel --log-req-res --dont-clean --force-resp3 ${{github.event.inputs.cluster_test_args}} | ||
- name: cluster tests | ||
if: true && !contains(github.event.inputs.skiptests, 'cluster') | ||
run: ./runtest-cluster --log-req-res --dont-clean --force-resp3 ${{github.event.inputs.cluster_test_args}} | ||
- name: Install Python dependencies | ||
uses: py-actions/py-dependency-install@v4 | ||
with: | ||
path: "./utils/req-res-validator/requirements.txt" | ||
- name: validator | ||
run: ./utils/req-res-log-validator.py --verbose --fail-missing-reply-schemas ${{ (!contains(github.event.inputs.skiptests, 'redis') && !contains(github.event.inputs.skiptests, 'module') && !contains(github.event.inputs.sentinel, 'redis') && !contains(github.event.inputs.skiptests, 'cluster')) && github.event.inputs.test_args == '' && github.event.inputs.cluster_test_args == '' && '--fail-commands-not-all-hit' || '' }} | ||