Skip to content

Production Code: Use Redis Time in State & Metrics #1140

Production Code: Use Redis Time in State & Metrics

Production Code: Use Redis Time in State & Metrics #1140

Workflow file for this run

name: 🚦Stoplight
on:
pull_request:
push:
branches: [ main ]
permissions: # added using https://github.com/step-security/secure-repo
contents: read
jobs:
steep:
name: Type Check 🔍
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Ruby
uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
with:
ruby-version: 4.0
bundler-cache: true
- run: bundle exec rbs collection install
- run: bundle exec steep check --format=github
- run: bundle exec rbs -I sig validate
rubocop:
name: Standard 👮
runs-on: ubuntu-latest
permissions:
checks: write
contents: read
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
with:
egress-policy: audit
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Standard Ruby
uses: standardrb/standard-ruby-action@eecb3f730879f5b8830705348c2961e5aa26de78 # v1.5.0
with:
ruby-version: '4.0'
autofix: false
features:
name: Features (${{ matrix.data-store }} Data Store and ${{ matrix.data-store-image }} Data Store image using ${{matrix.light-creation}}) 🥒
runs-on: ubuntu-latest
strategy:
matrix:
light-creation: [ 'Stoplight()', 'System#register' ]
data-store: [ 'Redis' ]
data-store-image:
- 'redis:7.4'
- 'valkey/valkey:8-alpine'
include:
# Memory does not depend on the Data Store so we only want to run its suite once
- data-store: 'Memory'
data-store-image: 'redis:7.4'
light-creation: 'Stoplight()'
- data-store: 'Memory'
data-store-image: 'redis:7.4'
light-creation: 'System#register'
services:
data-store:
image: ${{ matrix.data-store-image }}
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
with:
egress-policy: audit
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Ruby
uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
with:
ruby-version: 4.0
bundler-cache: true
- name: Run Features
run: bundle exec cucumber features/stoplight
env:
STOPLIGHT_REDIS_URL: 'redis://127.0.0.1:6379/0'
STOPLIGHT_DATA_STORE: ${{ matrix.data-store }}
STOPLIGHT_LIGHT_CREATION: ${{ matrix.light-creation }}
CUCUMBER_PUBLISH_ENABLED: true
spec:
permissions:
contents: read # for actions/checkout to fetch code
name: Specs on Ruby ${{ matrix.ruby }} with Data Store as ${{ matrix.data-store-image }} 💚
runs-on: ubuntu-latest
strategy:
matrix:
data-store-image:
- 'redis:7.4'
- 'redis:8.4'
- 'redis:8.6'
- 'valkey/valkey:7.2-alpine'
- 'valkey/valkey:8.1-alpine'
- 'valkey/valkey:9.1-alpine'
ruby: ['3.3', '3.4', '4.0' ]
services:
data-store:
image: ${{ matrix.data-store-image }}
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
with:
egress-policy: audit
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Ruby
uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Run Tests
run: bundle exec rake spec
env:
STOPLIGHT_REDIS_URL: 'redis://127.0.0.1:6379/0'