diff --git a/.github/workflows/ci-pull-requests.yml b/.github/workflows/ci-pull-requests.yml index 92d62c7f6f..7703abf988 100644 --- a/.github/workflows/ci-pull-requests.yml +++ b/.github/workflows/ci-pull-requests.yml @@ -18,12 +18,13 @@ jobs: uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - - name: npm install, build, and test + - name: npm install, build, test, and lint + env: + CI: true + ESLINT_PLUGIN_DIFF_COMMIT: ${{ github.event.pull_request.base.ref }} run: | npm install -g npm@latest npm install npm run build --if-present npm test npm run lint - env: - CI: true diff --git a/package-lock.json b/package-lock.json index b0b3c0e9f9..9ce448e46b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21868,6 +21868,18 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-plugin-diff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-diff/-/eslint-plugin-diff-2.0.1.tgz", + "integrity": "sha512-qqbvwaaO1cfkUprliqiRojRsD0qGsvzmJNqNrb9s0h15sDVzZMXYdu0TUFpUwauLeU28etSsfWIp0Uu+OAcXXw==", + "dev": true, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": ">=6.7.0" + } + }, "node_modules/eslint-plugin-import": { "version": "2.26.0", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", @@ -52249,6 +52261,7 @@ "eslint": "8.23.0", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-prettier": "^8.5.0", + "eslint-plugin-diff": "^2.0.1", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-vue": "^9.4.0" @@ -56070,6 +56083,7 @@ "eslint": "8.23.0", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-prettier": "^8.5.0", + "eslint-plugin-diff": "^2.0.1", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-vue": "^9.4.0" @@ -70187,6 +70201,12 @@ } } }, + "eslint-plugin-diff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-diff/-/eslint-plugin-diff-2.0.1.tgz", + "integrity": "sha512-qqbvwaaO1cfkUprliqiRojRsD0qGsvzmJNqNrb9s0h15sDVzZMXYdu0TUFpUwauLeU28etSsfWIp0Uu+OAcXXw==", + "dev": true + }, "eslint-plugin-import": { "version": "2.26.0", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", diff --git a/packages/@n8n_io/eslint-config/base.js b/packages/@n8n_io/eslint-config/base.js index 314b3f33a8..a8c5e66880 100644 --- a/packages/@n8n_io/eslint-config/base.js +++ b/packages/@n8n_io/eslint-config/base.js @@ -64,6 +64,13 @@ module.exports = { * https://github.com/prettier/eslint-config-prettier */ 'eslint-config-prettier', + + /** + * Config to lint only changes in CI + * + * https://github.com/paleite/eslint-plugin-diff#plugindiffci + */ + 'plugin:diff/ci', ], rules: { @@ -180,10 +187,7 @@ module.exports = { /** * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-member-accessibility.md */ - '@typescript-eslint/explicit-member-accessibility': [ - 'error', - { accessibility: 'no-public' }, - ], + '@typescript-eslint/explicit-member-accessibility': ['error', { accessibility: 'no-public' }], /** * https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/member-delimiter-style.md diff --git a/packages/@n8n_io/eslint-config/package.json b/packages/@n8n_io/eslint-config/package.json index 0591ad91e6..44f618b50c 100644 --- a/packages/@n8n_io/eslint-config/package.json +++ b/packages/@n8n_io/eslint-config/package.json @@ -9,6 +9,7 @@ "eslint": "8.23.0", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-prettier": "^8.5.0", + "eslint-plugin-diff": "^2.0.1", "eslint-plugin-import": "^2.26.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-vue": "^9.4.0"