Skip to content

Merge pull request #166 from mattnenterprise/expression-cursor-v3 #348

Merge pull request #166 from mattnenterprise/expression-cursor-v3

Merge pull request #166 from mattnenterprise/expression-cursor-v3 #348

Workflow file for this run

name: Test
on:
push:
pull_request:
branches:
- main
jobs:
check_duplicate_runs:
name: Check for duplicate runs
continue-on-error: true
runs-on: ubuntu-20.04
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v3.4.0
with:
concurrent_skipping: always
cancel_others: true
skip_after_successful_duplicate: true
paths_ignore: '["**/README.md", "**/CHANGELOG.md", "**/LICENSE.txt"]'
do_not_skip: '["pull_request"]'
test:
name: Elixir ${{ matrix.elixir }} / OTP ${{ matrix.otp }}
runs-on: ubuntu-20.04
needs: check_duplicate_runs
if: ${{ needs.check_duplicate_runs.outputs.should_skip != 'true' }}
services:
postgres:
image: postgres
ports:
- 5432:5432
env:
POSTGRES_DB: paginator_test
POSTGRES_PASSWORD: postgres
strategy:
matrix:
elixir:
- "1.7"
- "1.8"
- "1.9"
- "1.10"
- "1.11"
otp:
- "20.0"
- "21.0"
- "22.0.2"
- "23.0"
exclude:
- elixir: "1.10"
otp: "20.0"
- elixir: "1.11"
otp: "20.0"
- elixir: "1.9"
otp: "23.0"
- elixir: "1.7"
otp: "23.0"
- elixir: "1.8"
otp: "23.0"
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Elixir
uses: erlef/setup-beam@v1
with:
elixir-version: ${{ matrix.elixir }}
otp-version: ${{ matrix.otp }}
- name: Restore build and deps caches
uses: actions/cache@v2
with:
path: |
deps
_build
key: ${{ runner.os }}-deps-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('**/mix.lock') }}
restore-keys: |
${{ runner.os }}-deps-${{ matrix.otp }}-${{ matrix.elixir }}
- name: Install package dependencies
run: mix deps.get
- name: Remove compiled application files
run: mix clean
- name: Compile dependencies
run: mix compile
env:
MIX_ENV: test
- name: Run unit tests
run: mix test
inch:
name: Analyse Documentation
runs-on: ubuntu-20.04
needs: test
strategy:
matrix:
elixir:
- "1.11"
otp:
- "23.0"
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Elixir
uses: erlef/setup-beam@v1
with:
elixir-version: ${{ matrix.elixir }}
otp-version: ${{ matrix.otp }}
- name: Restore build and deps caches
uses: actions/cache@v2
with:
path: |
deps
_build
key: ${{ runner.os }}-deps-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('**/mix.lock') }}
restore-keys: |
${{ runner.os }}-deps-${{ matrix.otp }}-${{ matrix.elixir }}
- name: Install package dependencies
run: mix deps.get
- name: Remove compiled application files
run: mix clean
- name: Compile dependencies
run: mix compile
- name: Check documentation quality locally
run: mix inch
- name: Report documentation quality
if: github.event_name == 'push'
run: mix inch.report