Create tech stack docs (techstack.yml and techstack.md) #97
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
--- | |
name: CI | |
on: | |
pull_request: | |
types: | |
- opened | |
- reopened | |
- synchronize | |
push: | |
branches: | |
- main | |
env: | |
ELIXIR_VERSION: "1.14" | |
OTP_VERSION: "25.0" | |
concurrency: | |
group: ${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
Credo: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- id: beam | |
name: Setup Beam | |
uses: erlef/setup-beam@v1 | |
with: | |
elixir-version: ${{ env.ELIXIR_VERSION }} | |
otp-version: ${{ env.OTP_VERSION }} | |
- id: cache | |
name: Cache | |
uses: actions/cache@v3 | |
with: | |
key: | | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}-${{ hashFiles('mix.lock') }}-${{ github.ref }} | |
restore-keys: | | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}-${{ hashFiles('mix.lock') }}- | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}- | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}- | |
path: | | |
_build | |
deps | |
- if: steps.cache.outputs.cache-hit != 'true' | |
name: Deps | |
run: mix deps.get | |
- name: Credo | |
run: mix credo | |
Dialyzer: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- id: beam | |
name: Setup Beam | |
uses: erlef/setup-beam@v1 | |
with: | |
elixir-version: ${{ env.ELIXIR_VERSION }} | |
otp-version: ${{ env.OTP_VERSION }} | |
- id: cache | |
name: Cache | |
uses: actions/cache@v3 | |
with: | |
key: | | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}-${{ hashFiles('mix.lock') }}-${{ github.ref }} | |
restore-keys: | | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}-${{ hashFiles('mix.lock') }}- | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}- | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}- | |
path: | | |
_build | |
deps | |
- if: steps.cache.outputs.cache-hit != 'true' | |
name: Deps | |
run: mix deps.get | |
- name: Dialyzer | |
run: mix dialyzer | |
Doctor: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- id: beam | |
name: Setup Beam | |
uses: erlef/setup-beam@v1 | |
with: | |
elixir-version: ${{ env.ELIXIR_VERSION }} | |
otp-version: ${{ env.OTP_VERSION }} | |
- id: cache | |
name: Cache | |
uses: actions/cache@v3 | |
with: | |
key: | | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}-${{ hashFiles('mix.lock') }}-${{ github.ref }} | |
restore-keys: | | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}-${{ hashFiles('mix.lock') }}- | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}- | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}- | |
path: | | |
_build | |
deps | |
- if: steps.cache.outputs.cache-hit != 'true' | |
name: Deps | |
run: mix deps.get | |
- name: Doctor | |
run: mix doctor | |
Format: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- id: beam | |
name: Setup Beam | |
uses: erlef/setup-beam@v1 | |
with: | |
elixir-version: ${{ env.ELIXIR_VERSION }} | |
otp-version: ${{ env.OTP_VERSION }} | |
- id: cache | |
name: Cache | |
uses: actions/cache@v3 | |
with: | |
key: | | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}-${{ hashFiles('mix.lock') }}-${{ github.ref }} | |
restore-keys: | | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}-${{ hashFiles('mix.lock') }}- | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}- | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}- | |
path: | | |
_build | |
deps | |
- if: steps.cache.outputs.cache-hit != 'true' | |
name: Deps | |
run: mix deps.get | |
- name: Format | |
run: mix format --check-formatted | |
Test: | |
name: Test (Elixir ${{ matrix.versions.elixir }} OTP ${{ matrix.versions.otp }}) | |
runs-on: ubuntu-latest | |
env: | |
MIX_ENV: test | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- id: beam | |
name: Setup Beam | |
uses: erlef/setup-beam@v1 | |
with: | |
elixir-version: ${{ matrix.versions.elixir }} | |
otp-version: ${{ matrix.versions.otp }} | |
- id: cache | |
name: Cache | |
uses: actions/cache@v3 | |
with: | |
key: | | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}-${{ hashFiles('mix.lock') }}-${{ github.ref }} | |
restore-keys: | | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}-${{ hashFiles('mix.lock') }}- | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ github.job }}- | |
${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}- | |
path: | | |
_build | |
deps | |
- if: steps.cache.outputs.cache-hit != 'true' | |
name: Deps | |
run: mix deps.get | |
- name: Compile | |
run: mix compile --warnings-as-errors | |
- name: Test | |
run: mix test | |
strategy: | |
fail-fast: false | |
matrix: | |
versions: | |
- elixir: 1.12 | |
otp: 24 | |
- elixir: 1.13 | |
otp: 25 | |
- elixir: 1.14 | |
otp: 25 | |
- elixir: 1.15 | |
otp: 26 | |