1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
---
name: Test
on: [push, pull_request]
jobs:
lint:
name: Rubocop
env:
BUNDLE_WITHOUT: "benchmark"
timeout-minutes: 15
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.3"
bundler-cache: true
- name: Lint
run: bundle exec rubocop
ruby:
name: Ruby ${{ matrix.ruby }}
env:
BUNDLE_WITHOUT: "linter:benchmark"
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
redis: ["6.2"]
ruby: ["ruby-head", "4.0", "3.4", "3.3", "3.2", "3.1", "3.0", "2.7", "2.6", "jruby", "truffleruby"]
runs-on: ${{ matrix.os }}
steps:
- name: Check out code
uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Cache redis build
uses: actions/cache@v5
with:
path: tmp/cache
key: "local-tmp-cache-${{ matrix.redis }}-on-${{ matrix.os }}"
- name: Lower system timeout
run: sudo sysctl -w net.ipv4.tcp_syn_retries=2
- name: Test
run: |
bundle exec rake ci
env:
EXT_PEDANTIC: "1"
REDIS: ${{ matrix.redis }}
redis:
name: Redis ${{ matrix.redis }}
env:
BUNDLE_WITHOUT: "linter:benchmark"
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
redis: ["7.0", "7.2"]
ruby: ["3.2"]
runs-on: ${{ matrix.os }}
steps:
- name: Check out code
uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Cache redis build
uses: actions/cache@v5
with:
path: tmp/cache
key: "local-tmp-cache-${{ matrix.redis }}-on-${{ matrix.os }}"
- name: Lower system timeout
run: sudo sysctl -w net.ipv4.tcp_syn_retries=2
- name: Test
run: |
bundle exec rake ci
env:
EXT_PEDANTIC: "1"
REDIS: ${{ matrix.redis }}
# Redis sentinel is super slow to setup nad very flaky
# So we run them independently against a single set of versions
# so that they're easier to retry and less likely to flake.
sentinel:
name: Sentinel
env:
BUNDLE_WITHOUT: "linter:benchmark"
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
redis: ["6.2"]
ruby: ["3.1"]
runs-on: ${{ matrix.os }}
steps:
- name: Check out code
uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Cache redis build
uses: actions/cache@v5
with:
path: tmp/cache
key: "local-tmp-cache-${{ matrix.redis }}-on-${{ matrix.os }}"
- name: Lower system timeout
run: sudo sysctl -w net.ipv4.tcp_syn_retries=2
- name: Test
run: |
bundle exec rake test:sentinel
env:
EXT_PEDANTIC: "1"
REDIS: ${{ matrix.redis }}
|