name: Checks on: push: branches: - main pull_request: branches: - main jobs: check: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup sh run: sudo apt-get install -y bash - name: Setup Elixir run: curl -fsSO https://elixir-lang.org/install.sh && \ chmod +x install.sh && \ ./install.sh elixir@1.17.3 otp@27.1.2 && \ installs_dir=$HOME/.elixir-install/installs && \ export PATH=$installs_dir/otp/27.1.2/bin:$PATH && \ export PATH=$installs_dir/elixir/1.17.3-otp-27/bin:$PATH - name: Install dependencies run: mix deps.get - name: Check formatting run: mix format --check-formatted - name: Run Credo run: mix credo --strict - name: Check for compiler warnings run: mix compile --warnings-as-errors - name: Run tests run: mix test - name: Check for unused dependencies run: mix deps.unlock --check-unused