name: "[CI] Lint code"
on:
  push:
    branches:
      - main
  pull_request:
    branches-ignore:
      - "chore/l10n*"

env:
  CI: "true"
  RUBY_VERSION: 3.1.2
  NODE_VERSION: 16.9.1

concurrency:
  group: ${{ github.head_ref || github.ref_name }} 
  cancel-in-progress: true

jobs:
  main:
    name: Tests
    runs-on: ubuntu-latest
    timeout-minutes: 60
    steps:
      - uses: actions/checkout@v2.0.0
        with:
          fetch-depth: 1
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ env.RUBY_VERSION }}
          bundler-cache: true
      - uses: actions/setup-node@v1
        with:
          node-version: ${{ env.NODE_VERSION }}
      - name: Get npm cache directory path
        id: npm-cache-dir-path
        run: echo "::set-output name=dir::$(npm get cache)-main"
      - uses: actions/cache@v2
        id: npm-cache
        with:
          path: ${{ steps.npm-cache-dir-path.outputs.dir }}
          key: npm-${{ hashFiles('**/package-lock.json') }}
          restore-keys: |
            npm-
      - name: Install JS dependencies
        run: npm ci
      - run: bundle exec rubocop -P
        name: Lint Ruby files