setup-redis/README.md

209 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<div align="center">
<a href="https://superchargejs.com">
<img width="471" style="max-width:100%;" src="https://superchargejs.com/images/supercharge-text.svg" />
</a>
<br/>
<br/>
<p>
<h3>Redis in GitHub Actions</h3>
</p>
<p>
Start a Redis server in your GitHub Actions.
</p>
<br/>
<p>
<a href="#usage"><strong>Usage</strong></a>
</p>
<br/>
<br/>
<p>
<em>Follow <a href="http://twitter.com/marcuspoehls">@marcuspoehls</a> and <a href="http://twitter.com/superchargejs">@superchargejs</a> for updates!</em>
</p>
</div>
---
## Introduction
This GitHub Action starts a Redis server on the default port `6379`.
This is useful when running tests against a Redis database.
## Usage
A code example says more than a 1000 words. Heres an exemplary GitHub Action using a Redis server in versions 4 and 5 to test a Node.js app:
```yaml
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@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Start Redis
uses: supercharge/redis-github-action@1.7.0
with:
redis-version: ${{ matrix.redis-version }}
- run: npm install
- run: npm test
env:
CI: true
```
### Using a Custom Redis Image
You can utilize an alternative Redis image using the `redis-image` input:
```yaml
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/redis-github-action@1.7.0
with:
redis-image: redis/redis-stack-server
redis-version: ${{ matrix.redis-version }}
- name:
```
### Using Redis on a Custom Port
You can start the Redis instance on a custom port using the `redis-port` input:
```yaml
name: Run tests
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
redis-version: [6, 7]
steps:
- name: Start Redis
uses: supercharge/redis-github-action@1.7.0
with:
redis-version: ${{ matrix.redis-version }}
redis-port: 12345
- name:
```
### Using a Custom Container 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:
```yaml
name: Run tests
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
redis-version: [6, 7]
steps:
- name: Start Redis
uses: supercharge/redis-github-action@1.7.0
with:
redis-version: ${{ matrix.redis-version }}
redis-container-name: redis-auth-token-cache
- name:
```
### Remove container when exit
Starting in v1.6.0, when running this action on a self-hosted runner, its helpful to remove the container so its name wont conflict:
```yaml
name: Run tests
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
redis-version: [6, 7]
steps:
- name: Start Redis
uses: supercharge/redis-github-action@1.7.0
with:
redis-version: ${{ matrix.redis-version }}
redis-remove-container: true # false by default
- name:
```
### Using Authentication
Starting in v1.7.0, You can start the Redis with Authentication using the `redis-password` input:
```yaml
name: Run tests
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
redis-version: [6, 7]
steps:
- name: Start Redis
uses: supercharge/redis-github-action@1.7.0
with:
redis-version: ${{ matrix.redis-version }}
redis-password: 'password'
- name:
```
## License
MIT © [Supercharge](https://superchargejs.com)
---
> [superchargejs.com](https://superchargejs.com) &nbsp;&middot;&nbsp;
> GitHub [@supercharge](https://github.com/supercharge) &nbsp;&middot;&nbsp;
> Twitter [@superchargejs](https://twitter.com/superchargejs)