mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 01:25:54 +08:00
488b8b369a
This broke because of directory ownership errors during `git ls-files`. This commit fixes the permissions and adds bash flags so that those kind of errors will blow up the step in future.
115 lines
3.3 KiB
YAML
115 lines
3.3 KiB
YAML
name: Linting
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
concurrency:
|
|
group: linting-${{ format('{0}-{1}', github.head_ref || github.run_number, github.job) }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build:
|
|
if: "!(github.event_name == 'push' && github.repository == 'discourse/discourse-private-mirror')"
|
|
name: run
|
|
runs-on: ubuntu-latest
|
|
container: discourse/discourse_test:slim
|
|
timeout-minutes: 30
|
|
|
|
steps:
|
|
- name: Set working directory owner
|
|
run: chown root:root .
|
|
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 1
|
|
|
|
- name: Setup Git
|
|
run: |
|
|
git config --global user.email "ci@ci.invalid"
|
|
git config --global user.name "Discourse CI"
|
|
|
|
- name: Bundler cache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: vendor/bundle
|
|
key: ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-gem-
|
|
|
|
- name: Setup gems
|
|
run: |
|
|
gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
|
|
bundle config --local path vendor/bundle
|
|
bundle config --local deployment true
|
|
bundle config --local without development
|
|
bundle install --jobs 4
|
|
bundle clean
|
|
|
|
- name: Get yarn cache directory
|
|
id: yarn-cache-dir
|
|
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Yarn cache
|
|
uses: actions/cache@v3
|
|
id: yarn-cache
|
|
with:
|
|
path: ${{ steps.yarn-cache-dir.outputs.dir }}
|
|
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-yarn-
|
|
|
|
- name: Yarn install
|
|
run: yarn install
|
|
|
|
- name: Rubocop
|
|
if: ${{ !cancelled() }}
|
|
run: bundle exec rubocop --parallel .
|
|
|
|
- name: syntax_tree
|
|
if: ${{ !cancelled() }}
|
|
run: |
|
|
set -E
|
|
bundle exec stree check Gemfile $(git ls-files '*.rb') $(git ls-files '*.rake')
|
|
|
|
- name: ESLint (core)
|
|
if: ${{ !cancelled() }}
|
|
run: yarn eslint app/assets/javascripts
|
|
|
|
- name: ESLint (core plugins)
|
|
if: ${{ !cancelled() }}
|
|
run: yarn eslint plugins
|
|
|
|
- name: Prettier
|
|
if: ${{ !cancelled() }}
|
|
run: |
|
|
yarn prettier -v
|
|
yarn pprettier --list-different \
|
|
"app/assets/stylesheets/**/*.scss" \
|
|
"app/assets/javascripts/**/*.js" \
|
|
"app/assets/javascripts/**/*.hbs" \
|
|
"plugins/**/assets/stylesheets/**/*.scss" \
|
|
"plugins/**/assets/javascripts/**/*.js" \
|
|
"plugins/**/assets/javascripts/**/*.hbs" \
|
|
|
|
- name: Ember template lint
|
|
if: ${{ !cancelled() }}
|
|
run: |
|
|
yarn ember-template-lint \
|
|
--no-error-on-unmatched-pattern \
|
|
"app/assets/javascripts/**/*.hbs" \
|
|
"plugins/**/assets/javascripts/**/*.hbs"
|
|
|
|
- name: English locale lint (core)
|
|
if: ${{ !cancelled() }}
|
|
run: bundle exec ruby script/i18n_lint.rb "config/**/locales/{client,server}.en.yml"
|
|
|
|
- name: English locale lint (core plugins)
|
|
if: ${{ !cancelled() }}
|
|
run: bundle exec ruby script/i18n_lint.rb "plugins/**/locales/{client,server}.en.yml"
|