Merge pull request #18 from market-ops/upkeep/handle-master-payload-p… #42
This file contains hidden or 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: Elixir CI | |
| on: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| branches: ["main"] | |
| env: | |
| MIX_ENV: test | |
| permissions: | |
| contents: 'read' | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| name: "Test on OTP ${{matrix.otp}} / Elixir ${{matrix.elixir}}" | |
| strategy: | |
| matrix: | |
| otp: ['26.0.1'] | |
| elixir: ['1.15.7'] | |
| steps: | |
| - name: 'Set up Elixir' | |
| id: beam | |
| uses: erlef/setup-beam@v1 | |
| with: | |
| otp-version: ${{matrix.otp}} | |
| elixir-version: ${{matrix.elixir}} | |
| - name: 'Checkout code' | |
| uses: actions/checkout@v3 | |
| - name: 'Cache deps' | |
| id: cache-deps | |
| uses: actions/cache@v3 | |
| env: | |
| cache-name: cache-elixir-deps | |
| with: | |
| path: deps | |
| key: ${{ runner.os }}-mix-${{ env.cache-name }}-${{ hashFiles('**/mix.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-mix-${{ env.cache-name }}- | |
| - name: 'Cache compiled build' | |
| id: cache-build | |
| uses: actions/cache@v3 | |
| env: | |
| cache-name: cache-compiled-build | |
| with: | |
| path: _build | |
| key: ${{ runner.os }}-mix-${{ env.cache-name }}-${{ hashFiles('**/mix.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-mix-${{ env.cache-name }}- | |
| ${{ runner.os }}-mix- | |
| - name: 'Install dependencies' | |
| run: mix deps.get | |
| - name: 'Compiles without warnings' | |
| run: mix compile --warnings-as-errors | |
| - name: 'Check Formatting' | |
| run: mix format --check-formatted | |
| - name: 'Static Analysis (Credo)' | |
| run: mix credo | |
| - name: Restore PLT cache (Dialyzer) | |
| id: plt_cache | |
| uses: actions/cache/restore@v3 | |
| with: | |
| key: | | |
| plt-${{ runner.os }}-${{ steps.beam.outputs.otp-version }}-${{ steps.beam.outputs.elixir-version }}-${{ hashFiles('**/mix.lock') }} | |
| restore-keys: | | |
| plt-${{ runner.os }}-${{ steps.beam.outputs.otp-version }}-${{ steps.beam.outputs.elixir-version }}- | |
| path: | | |
| priv/plts | |
| - name: Create PLTs (Dialyzer) | |
| if: steps.plt_cache.outputs.cache-hit != 'true' | |
| run: mix dialyzer --plt | |
| - name: Save PLT cache | |
| id: plt_cache_save | |
| uses: actions/cache/save@v3 | |
| if: steps.plt_cache.outputs.cache-hit != 'true' | |
| with: | |
| key: | | |
| plt-${{ runner.os }}-${{ steps.beam.outputs.otp-version }}-${{ steps.beam.outputs.elixir-version }}-${{ hashFiles('**/mix.lock') }} | |
| path: | | |
| priv/plts | |
| - name: 'Static Analysis (Dialyzer)' | |
| run: mix dialyzer --format github | |
| - name: 'Run tests' | |
| run: mix test |