name: Linting

on:
  push:
    branches:
      - master
      - main
      - stable
  pull_request:
  schedule:
    - cron: '0 0 * * *'

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Set up Node.js
        uses: actions/setup-node@v1
        with:
          node-version: 14

      - name: Set up ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: 2.7

      - name: Setup bundler
        run: gem install bundler -v 2.1.4 --no-doc

      - name: Setup gems
        run: bundle install --jobs 4

      - name: Yarn install
        run: yarn install --dev

      - name: ESLint
        run: yarn eslint --ext .js,.js.es6 --no-error-on-unmatched-pattern {test,assets}/javascripts

      - name: Prettier
        run: |
          yarn prettier -v
          if [ -d "assets" ]; then \
            yarn prettier --list-different "assets/**/*.{scss,js,es6}" ; \
          fi
          if [ -d "test" ]; then \
            yarn prettier --list-different "test/**/*.{js,es6}" ; \
          fi

      - name: Ember template lint
        run: yarn ember-template-lint assets/javascripts

      - name: Rubocop
        run: bundle exec rubocop .