Credo Fix (#125) #114
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
pull_request: | |
branches: | |
- "*" | |
push: | |
branches: | |
- "main" | |
tags: | |
- "v*" | |
env: | |
BUILD_EMBEDDED: true | |
DIALYZER_PLT_PRIV: true | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
DEFAULT_ELIXIR_VERSION: 1.14 | |
DEFAULT_OTP_VERSION: 25.2 | |
jobs: | |
format: | |
name: Check Formatting | |
runs-on: ubuntu-latest | |
env: | |
MIX_ENV: dev | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: erlef/setup-elixir@v1 | |
id: setupBEAM | |
with: | |
otp-version: "${{ env.DEFAULT_OTP_VERSION }}" | |
elixir-version: "${{ env.DEFAULT_ELIXIR_VERSION }}" | |
- uses: actions/cache@v4 | |
with: | |
path: deps | |
key: deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
restore-keys: | | |
deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
- run: mix deps.get | |
- run: mix format --check-formatted | |
test: | |
name: Run Tests & Submit Coverage | |
env: | |
MIX_ENV: test | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- otp: '21.3' | |
elixir: '1.10' | |
runs-on: ubuntu-18.04 | |
- otp: '25.0' | |
elixir: '1.14' | |
runs-on: ubuntu-latest | |
- otp: '25.0' | |
elixir: 'main' | |
runs-on: ubuntu-latest | |
- runs-on: ubuntu-latest | |
# otp: '${{ env.DEFAULT_OTP_VERSION }}' | |
# elixir: '${{ env.DEFAULT_ELIXIR_VERSION }}' | |
enable_coverage_export: 'true' | |
runs-on: ${{ matrix.runs-on }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: erlef/setup-elixir@v1 | |
id: setupBEAM | |
with: | |
otp-version: ${{ matrix.otp || env.DEFAULT_OTP_VERSION }} | |
elixir-version: ${{ matrix.elixir || env.DEFAULT_ELIXIR_VERSION }} | |
- uses: actions/cache@v4 | |
with: | |
path: deps | |
key: deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
restore-keys: | | |
deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
- run: mix deps.get | |
- uses: actions/cache@v4 | |
with: | |
path: _build/${{ env.MIX_ENV }} | |
key: compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
restore-keys: | | |
compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
- run: mix deps.compile --skip-umbrella-children | |
- run: mix compile --warning-as-errors | |
- run: mix coveralls.github | |
if: ${{ matrix.enable_coverage_export == 'true' }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- run: mix test | |
if: ${{ !matrix.enable_coverage_export }} | |
credo: | |
name: Check Credo | |
runs-on: ubuntu-latest | |
env: | |
MIX_ENV: dev | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: erlef/setup-elixir@v1 | |
id: setupBEAM | |
with: | |
otp-version: "${{ env.DEFAULT_OTP_VERSION }}" | |
elixir-version: "${{ env.DEFAULT_ELIXIR_VERSION }}" | |
- uses: actions/cache@v4 | |
with: | |
path: deps | |
key: deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
restore-keys: | | |
deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
- run: mix deps.get | |
- uses: actions/cache@v4 | |
with: | |
path: _build/${{ env.MIX_ENV }} | |
key: compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
restore-keys: | | |
compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
- run: mix deps.compile --skip-umbrella-children | |
- run: mix compile --warning-as-errors | |
- run: mix credo --strict | |
dialyzer_plt: | |
name: Generate Dialyzer PLT | |
runs-on: ubuntu-latest | |
env: | |
MIX_ENV: dev | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: erlef/setup-elixir@v1 | |
id: setupBEAM | |
with: | |
otp-version: "${{ env.DEFAULT_OTP_VERSION }}" | |
elixir-version: "${{ env.DEFAULT_ELIXIR_VERSION }}" | |
- uses: actions/cache@v4 | |
with: | |
path: deps | |
key: deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
restore-keys: | | |
deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
- run: mix deps.get | |
- uses: actions/cache@v4 | |
with: | |
path: _build/${{ env.MIX_ENV }} | |
key: compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
restore-keys: | | |
compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
- run: mix deps.compile --skip-umbrella-children | |
- run: mix compile --warning-as-errors | |
- uses: actions/cache@v4 | |
with: | |
path: priv/plts/ | |
key: dialyzer_plt_${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
restore-keys: | | |
dialyzer_plt_${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
- run: mix dialyzer --plt | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: dialyzer_plt_${{ env.MIX_ENV }}-${{ steps.setup-elixir.outputs.otp-version }}-${{ steps.setup-elixir.outputs.elixir-version }} | |
path: priv/plts/ | |
dialyzer_test: | |
name: "Check Dialyzer" | |
runs-on: ubuntu-latest | |
needs: ["dialyzer_plt"] | |
env: | |
MIX_ENV: dev | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: erlef/setup-elixir@v1 | |
id: setupBEAM | |
with: | |
otp-version: "${{ env.DEFAULT_OTP_VERSION }}" | |
elixir-version: "${{ env.DEFAULT_ELIXIR_VERSION }}" | |
- uses: actions/cache@v4 | |
with: | |
path: deps | |
key: deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
restore-keys: | | |
deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
- run: mix deps.get | |
- uses: actions/cache@v4 | |
with: | |
path: _build/${{ env.MIX_ENV }} | |
key: compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
restore-keys: | | |
compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
- run: mix deps.compile --skip-umbrella-children | |
- run: mix compile --warning-as-errors | |
- uses: actions/download-artifact@v4 | |
with: | |
name: dialyzer_plt_${{ env.MIX_ENV }}-${{ steps.setup-elixir.outputs.otp-version }}-${{ steps.setup-elixir.outputs.elixir-version }} | |
path: priv/plts/ | |
- run: mix dialyzer | |
docs: | |
name: "Generate Docs" | |
runs-on: ubuntu-latest | |
env: | |
MIX_ENV: dev | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: erlef/setup-elixir@v1 | |
id: setupBEAM | |
with: | |
otp-version: "${{ env.DEFAULT_OTP_VERSION }}" | |
elixir-version: "${{ env.DEFAULT_ELIXIR_VERSION }}" | |
- uses: actions/cache@v4 | |
with: | |
path: deps | |
key: deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
restore-keys: | | |
deps-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
- run: mix deps.get | |
- uses: actions/cache@v4 | |
with: | |
path: _build/${{ env.MIX_ENV }} | |
key: compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}-${{ hashFiles('mix.lock') }} | |
restore-keys: | | |
compile-${{ env.MIX_ENV }}-${{ runner.os }}-${{ steps.setupBEAM.outputs.otp-version }}-${{ steps.setupBEAM.outputs.elixir-version }}- | |
- run: mix deps.compile --skip-umbrella-children | |
- run: mix compile --warning-as-errors | |
- run: mix docs | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: docs | |
path: doc |