name: Test on: pull_request: push: branches: - main jobs: main: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install Erlang & Elixir uses: erlef/setup-beam@v1 with: otp-version: '24.0' elixir-version: '1.12.0' - name: Cache Mix uses: actions/cache@v2 with: path: | deps _build key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }} restore-keys: | ${{ runner.os }}-mix- - name: Install mix dependencies run: mix deps.get - name: Check formatting run: mix format --check-formatted - name: Check warnings run: mix compile --warnings-as-errors - name: Run tests run: elixir --cookie "COOKIEFORTESTS" -S mix test - name: Install Node uses: actions/setup-node@v2 with: node-version: '14.x' - name: Cache npm dependencies uses: actions/cache@v2 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install npm dependencies run: npm ci --prefix assets - name: Check assets formatting run: npm run format-check --prefix assets - name: Run assets tests run: npm test --prefix assets