This GitHub Action starts a Redis server on the default port 6379.
This is useful when running tests against a Redis database.
A code example says more than 1,000 words. Here’s an exemplary GitHub Action using a Redis server in versions 4 and 5 to test a Node.js app:
name: Run tests
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x]
redis-version: [6, 7]
steps:
- name: Git checkout
uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Start Redis
uses: supercharge/[email protected]
with:
redis-version: ${{ matrix.redis-version }}
- run: npm install
- run: npm test
env:
CI: trueYou can utilize an alternative Redis image using the redis-image input:
name: Run tests
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
redis-version: [6.2.4-v4, 6.2.6-v3]
steps:
- name: Start Redis
uses: supercharge/[email protected]
with:
redis-image: redis/redis-stack-server
redis-version: ${{ matrix.redis-version }}
- name: …You can start the Redis instance on a custom port using the redis-port input:
name: Run tests
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
redis-version: [6, 7]
steps:
- name: Start Redis
uses: supercharge/[email protected]
with:
redis-version: ${{ matrix.redis-version }}
redis-port: 12345
- name: …This GitHub Action provides a Redis Docker container. The default container name is redis. It can be helpful to customize the container name. For example, when running multiple Redis instances in parallel. You can customize the container name using the redis-container-name input:
name: Run tests
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
redis-version: [6, 7]
steps:
- name: Start Redis
uses: supercharge/[email protected]
with:
redis-version: ${{ matrix.redis-version }}
redis-container-name: redis-auth-token-cache
- name: …Starting in v1.6.0, when running this action on a self-hosted runner, it’s helpful to remove the container so its name won’t conflict:
name: Run tests
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
redis-version: [6, 7]
steps:
- name: Start Redis
uses: supercharge/[email protected]
with:
redis-version: ${{ matrix.redis-version }}
redis-remove-container: true # false by default
- name: …Starting in v1.7.0, You can start the Redis with Authentication using the redis-password input:
name: Run tests
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
redis-version: [6, 7]
steps:
- name: Start Redis
uses: supercharge/[email protected]
with:
redis-version: ${{ matrix.redis-version }}
redis-password: 'password'
- name: …MIT © Supercharge