
Few CI improvements witch will reduce occupation CI queue and eliminate stale runs. 1. Kill CI jobs on PRs once PR branch gets a new push. This will prevent situation happened today - a huge job triggered twice in less than an hour and occupied all **org** (for all repositories) runners queue for the rest of the day (see pic). This completely blocked valkey-glide team. 2. Distribute nightly croned jobs on time to prevent them running together. Keep in mind, cron's TZ is UTC, so midnight tasks incur developers located in other timezones. This must be backported to all release branches (`valkey-x.y` and `x.y`)  --------- Signed-off-by: Yury-Fridlyand <yury.fridlyand@improving.com>
93 lines
3.1 KiB
YAML
93 lines
3.1 KiB
YAML
name: External Server Tests
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
schedule:
|
|
- cron: '0 2 * * *'
|
|
|
|
concurrency:
|
|
group: external-${{ github.head_ref || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
test-external-standalone:
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name != 'schedule' || github.repository == 'valkey-io/valkey'
|
|
timeout-minutes: 14400
|
|
steps:
|
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
- name: Build
|
|
run: make SERVER_CFLAGS=-Werror
|
|
- name: Start valkey-server
|
|
run: |
|
|
./src/valkey-server --daemonize yes --save "" --logfile external-server.log \
|
|
--enable-protected-configs yes --enable-debug-command yes --enable-module-command yes
|
|
- name: Run external test
|
|
run: |
|
|
./runtest \
|
|
--host 127.0.0.1 --port 6379 \
|
|
--verbose \
|
|
--tags -slow
|
|
- name: Archive server log
|
|
if: ${{ failure() }}
|
|
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
|
|
with:
|
|
name: test-external-standalone-log
|
|
path: external-server.log
|
|
|
|
test-external-cluster:
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name != 'schedule' || github.repository == 'valkey-io/valkey'
|
|
timeout-minutes: 14400
|
|
steps:
|
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
- name: Build
|
|
run: make SERVER_CFLAGS=-Werror
|
|
- name: Start valkey-server
|
|
run: |
|
|
./src/valkey-server --cluster-enabled yes --daemonize yes --save "" --logfile external-server.log \
|
|
--enable-protected-configs yes --enable-debug-command yes --enable-module-command yes
|
|
- name: Create a single node cluster
|
|
run: ./src/valkey-cli cluster addslots $(for slot in {0..16383}; do echo $slot; done); sleep 5
|
|
- name: Run external test
|
|
run: |
|
|
./runtest \
|
|
--host 127.0.0.1 --port 6379 \
|
|
--verbose \
|
|
--cluster-mode \
|
|
--tags -slow
|
|
- name: Archive server log
|
|
if: ${{ failure() }}
|
|
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
|
|
with:
|
|
name: test-external-cluster-log
|
|
path: external-server.log
|
|
|
|
test-external-nodebug:
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name != 'schedule' || github.repository == 'valkey-io/valkey'
|
|
timeout-minutes: 14400
|
|
steps:
|
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
- name: Build
|
|
run: make SERVER_CFLAGS=-Werror
|
|
- name: Start valkey-server
|
|
run: |
|
|
./src/valkey-server --daemonize yes --save "" --logfile external-server.log
|
|
- name: Run external test
|
|
run: |
|
|
./runtest \
|
|
--host 127.0.0.1 --port 6379 \
|
|
--verbose \
|
|
--tags "-slow -needs:debug"
|
|
- name: Archive server log
|
|
if: ${{ failure() }}
|
|
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
|
|
with:
|
|
name: test-external-nodebug-log
|
|
path: external-server.log
|