Skip to content

[#65] Migrate adapter to Nebulex V3 #134

[#65] Migrate adapter to Nebulex V3

[#65] Migrate adapter to Nebulex V3 #134

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
nebulex_test:
name: >-
Nebulex.Adapters.Redis Test (Elixir ${{ matrix.elixir }} / OTP ${{ matrix.otp }} /
OS ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- elixir: 1.17.x
otp: 27.x
os: 'ubuntu-latest'
style: true
coverage: true
dialyzer: true
- elixir: 1.17.x
otp: 26.x
os: 'ubuntu-latest'
- elixir: 1.16.x
otp: 26.x
os: 'ubuntu-latest'
- elixir: 1.15.x
otp: 25.x
os: 'ubuntu-latest'
- elixir: 1.14.x
otp: 23.x
os: 'ubuntu-20.04'
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
MIX_ENV: test
NEBULEX_PATH: nebulex
REDIS_CLUSTER_IP: '0.0.0.0'
steps:
- uses: actions/checkout@v3
- name: Start Docker
run: docker compose up --detach
- name: Install OTP and Elixir
uses: erlef/setup-beam@v1
with:
otp-version: '${{ matrix.otp }}'
elixir-version: '${{ matrix.elixir }}'
- name: Cache deps
uses: actions/cache@v3
id: mix-cache
with:
path: deps
key: >-
${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-mix-${{
hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
- name: Cache _build
uses: actions/cache@v3
with:
path: _build
key: >-
${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-build-${{
hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
- name: Install Nebulex
run: mix nbx.setup
- name: Install Dependencies
run: |
mix local.hex --force
mix local.rebar --force
mix deps.get
if: ${{ steps.mix-cache.outputs.cache-hit != 'true' }}
- name: Compile code
run: mix compile --warnings-as-errors
- name: Run style and code consistency checks
run: |
mix format --check-formatted
mix credo --strict
if: ${{ matrix.style }}
- name: Run tests
run: |
epmd -daemon
mix test --exclude nebulex_test
if: ${{ !matrix.coverage }}
- name: Run tests with coverage
run: |
epmd -daemon
mix coveralls.github --exclude nebulex_test
if: ${{ matrix.coverage }}
- name: Restore PLT Cache
uses: actions/cache@v3
id: plt-cache
with:
path: priv/plts
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-plt-v1
if: ${{ matrix.dialyzer }}
- name: Create PLTs
run: |
mkdir -p priv/plts
mix dialyzer --plt
if: ${{ matrix.dialyzer && steps.plt-cache.outputs.cache-hit != 'true' }}
- name: Run dialyzer
run: mix dialyzer --format github
if: ${{ matrix.dialyzer && steps.plt-cache.outputs.cache-hit != 'true' }}