forked from discourse/discourse
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
DEV: Clean up and refactor CI workflow(s) (discourse#12144)
Includes: * DEV: Remove external plugin linting (that's covered by CI in their repositories) * DEV: Move lint stages to a separate workflow (partial de-`if`-ication of workflows) * DEV: Run CI on `main` branch too * DEV: Update postgres to 13 * DEV: Update redis to 6.x Other changes: * DEV: Remove matrix.os * DEV: Remove env.BUILD_TYPE * DEV: Remove env.TARGET * DEV: Rename `build_types` config option to `build_type` * DEV: Lowercase `target` and `build_type` names * DEV: Rename `ci` to `tests` * DEV: Rename `lint` to `linting` * DEV: Lower the wizard qunit timeout (30 min -> 10) * DEV: Ruby version is no longer configurable * DEV: Run plugin tests only in the `plugins` target * DEV: Use binstubs where applicable * DEV: We don't open PRs to `tests-passed`
- Loading branch information
Showing
4 changed files
with
220 additions
and
201 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
name: Linting | ||
|
||
on: | ||
pull_request: | ||
push: | ||
branches: | ||
- master | ||
- main | ||
|
||
jobs: | ||
build: | ||
name: run | ||
runs-on: ubuntu-latest | ||
container: discourse/discourse_test:release | ||
timeout-minutes: 30 | ||
|
||
steps: | ||
- uses: actions/checkout@master | ||
with: | ||
fetch-depth: 1 | ||
|
||
- name: Setup Git | ||
run: | | ||
git config --global user.email "[email protected]" | ||
git config --global user.name "Discourse CI" | ||
- name: Bundler cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: vendor/bundle | ||
key: ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-gem- | ||
- name: Setup gems | ||
run: | | ||
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 "::set-output name=dir::$(yarn cache dir)" | ||
|
||
- name: Yarn cache | ||
uses: actions/cache@v2 | ||
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 | ||
run: bundle exec rubocop . | ||
|
||
- name: ESLint (core) | ||
run: yarn eslint --ext .js,.js.es6 --no-error-on-unmatched-pattern app/assets/javascripts | ||
|
||
- name: ESLint (core plugins) | ||
run: yarn eslint --ext .js,.js.es6 --no-error-on-unmatched-pattern plugins/**/{test,assets}/javascripts | ||
|
||
- name: Prettier | ||
run: | | ||
yarn prettier -v | ||
yarn prettier --list-different \ | ||
"app/assets/stylesheets/**/*.scss" \ | ||
"app/assets/javascripts/**/*.{js,es6}" \ | ||
"plugins/**/assets/stylesheets/**/*.scss" \ | ||
"plugins/**/assets/javascripts/**/*.{js,es6}" | ||
- name: Ember template lint | ||
run: | | ||
yarn ember-template-lint \ | ||
app/assets/javascripts \ | ||
plugins/**/assets/javascripts | ||
- name: English locale lint (core) | ||
run: bundle exec ruby script/i18n_lint.rb "config/**/locales/{client,server}.en.yml" | ||
|
||
- name: English locale lint (core plugins) | ||
run: bundle exec ruby script/i18n_lint.rb "plugins/**/locales/{client,server}.en.yml" |
Oops, something went wrong.