diff --git a/.github/workflows/plugin-linting.yml b/.github/workflows/plugin-linting.yml index fc465449..acb85230 100644 --- a/.github/workflows/plugin-linting.yml +++ b/.github/workflows/plugin-linting.yml @@ -3,46 +3,52 @@ name: Linting on: push: branches: - - master - main - stable pull_request: - schedule: - - cron: "0 0 * * *" + +concurrency: + group: plugin-linting-${{ format('{0}-{1}', github.head_ref || github.run_number, github.job) }} + cancel-in-progress: true jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Node.js - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: - node-version: 14 + node-version: 16 + cache: yarn + + - name: Yarn install + run: yarn install - 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 + bundler-cache: true - name: ESLint - run: yarn eslint --ext .js,.js.es6 --no-error-on-unmatched-pattern {test,assets}/javascripts/discourse + if: ${{ always() }} + run: yarn eslint --ext .js,.js.es6 --no-error-on-unmatched-pattern {test,assets}/javascripts - name: Prettier + if: ${{ always() }} + shell: bash run: | yarn prettier -v - yarn prettier --list-different "assets/javascripts/discourse/**/*.{scss,js,es6}" + if [ 0 -lt $(find assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l) ]; then + yarn prettier --list-different "assets/**/*.{scss,js,es6}" + fi + if [ 0 -lt $(find test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l) ]; then + yarn prettier --list-different "test/**/*.{js,es6}" + fi - name: Rubocop + if: ${{ always() }} run: bundle exec rubocop .