name: Exception Page CI

on:
  push:
    branches: [master]
  pull_request:
    branches: "*"

jobs:
  check_format:
    strategy:
      fail-fast: false
    runs-on: ubuntu-latest
    continue-on-error: false
    steps:
      - name: Download source
        uses: actions/checkout@v3
      - name: Install Crystal
        uses: crystal-lang/install-crystal@v1
      - name: Install shards
        run: shards install
      - name: Format
        run: crystal tool format --check
      - name: Lint
        run: ./bin/ameba
  specs:
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        crystal_version: [latest]
    runs-on: ${{ matrix.os }}
    continue-on-error: false
    steps:
      - uses: actions/checkout@v3
      - uses: crystal-lang/install-crystal@v1
        with:
          crystal: ${{ matrix.crystal_version }}
      - name: Install dependencies
        run: shards install --skip-postinstall --skip-executables
      - name: Run tests
        run: crystal spec
