diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..706dd85 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: + - package-ecosystem: "mix" + directory: "/" + open-pull-requests-limit: 30 + schedule: + interval: "daily" + time: "03:37" # UTC diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..f770189 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,68 @@ +name: ci + +on: + push: + branches: + - master + pull_request: + +jobs: + ci: + env: + MIX_ENV: test + strategy: + fail-fast: false + matrix: + include: + - pair: + elixir: '1.13' + otp: '24.3' + lint: lint + - pair: + elixir: '1.13' + otp: '25.0' + lint: lint + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - uses: erlef/setup-beam@v1 + with: + otp-version: ${{matrix.pair.otp}} + elixir-version: ${{matrix.pair.elixir}} + + - uses: actions/cache@v2 + with: + path: | + deps + _build + key: ${{ runner.os }}-mix-${{matrix.pair.elixir}}-${{matrix.pair.otp}}-${{ hashFiles('**/mix.lock') }} + restore-keys: | + ${{ runner.os }}-mix-${{matrix.pair.elixir}}-${{matrix.pair.otp}}- + + - name: Run mix deps.get + run: mix deps.get --only test + + - name: Run mix format + run: mix format --check-formatted + if: ${{ matrix.lint }} + + - name: Run mix deps.compile + run: mix deps.compile + + - name: Run mix compile + run: mix compile --warnings-as-errors + if: ${{ matrix.lint }} + + - name: Run credo + run: mix credo --strict + if: ${{ matrix.lint }} + + - name: Run mix test + run: mix test + + - name: Run dialyzer + run: mix dialyzer + if: ${{ matrix.lint }}