name: Linting on: push: branches: - main pull_request: 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@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: 18 cache: yarn - name: Yarn install run: yarn install - name: Set up ruby uses: ruby/setup-ruby@v1 with: ruby-version: 2.7 bundler-cache: true - name: ESLint if: ${{ !cancelled() }} run: yarn eslint --ext .js,.js.es6 --no-error-on-unmatched-pattern {test,assets,admin/assets}/javascripts - name: Prettier if: ${{ !cancelled() }} shell: bash run: | yarn prettier -v if [ 0 -lt $(find assets admin/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: Ember template lint if: ${{ !cancelled() }} run: yarn ember-template-lint --no-error-on-unmatched-pattern assets/javascripts admin/assets/javascripts - name: Rubocop if: ${{ !cancelled() }} run: bundle exec rubocop . - name: Syntax Tree if: ${{ !cancelled() }} run: | if test -f .streerc; then bundle exec stree check Gemfile $(git ls-files '*.rb') $(git ls-files '*.rake') else echo "Stree config not detected for this repository. Skipping." fi