mirror of
https://github.com/discourse/discourse.git
synced 2025-01-16 13:03:15 +08:00
15a7a84d84
Our self hosted runners are limited in quantity so we should preserve them for workflows that actually require the additional resources instead of tying them up on workflows that do not benefit from the additional resources.
91 lines
2.4 KiB
YAML
91 lines
2.4 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 == 'pull_request' || 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@v4
|
|
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@v4
|
|
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: pnpm install
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- 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') $(git ls-files '*.thor')
|
|
|
|
- name: ESLint
|
|
if: ${{ !cancelled() }}
|
|
run: pnpm lint:js
|
|
|
|
- name: Prettier
|
|
if: ${{ !cancelled() }}
|
|
run: |
|
|
pnpm prettier -v
|
|
pnpm lint:prettier
|
|
|
|
- name: Ember template lint
|
|
if: ${{ !cancelled() }}
|
|
run: pnpm lint: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"
|
|
|
|
- name: Glint
|
|
if: ${{ !cancelled() }}
|
|
run: pnpm glint -p jsconfig.json
|