Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 58 additions & 16 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,30 +26,72 @@ jobs:
if: ${{ !contains(github.event.pull_request.title, '[skip checker]') }}
strategy:
matrix:
include:
- package_name: base
package_path: packages/base
- package_name: '@actiontech/dms-kit'
package_path: packages/dms-kit
- package_name: '@actiontech/shared'
package_path: packages/shared
- package_name: sqle
package_path: packages/sqle
shard: [1, 2, 3, 4]
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install dependencies
uses: ./.github/actions/catch-install-pnpm

- name: Run package test suite
run: pnpm turbo run test:ci --filter=${{ matrix.package_name }}
- name: Coverage test report
run: sh ./scripts/jest/run-ci.sh ${{ matrix.shard }} ${{ strategy.job-total }}

- name: Coverage report
- uses: actions/upload-artifact@v4
with:
name: coverage-artifacts-${{ matrix.shard }}
path: coverage/

report:
runs-on: ubuntu-latest
if: ${{ !contains(github.event.pull_request.title, '[skip checker]') }}
needs: [test]
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Get Coverage 1
uses: actions/download-artifact@v4
with:
name: coverage-artifacts-1
path: coverage

- name: Get Coverage 2
uses: actions/download-artifact@v4
with:
name: coverage-artifacts-2
path: coverage

- name: Get Coverage 3
uses: actions/download-artifact@v4
with:
name: coverage-artifacts-3
path: coverage

- name: Get Coverage 4
uses: actions/download-artifact@v4
with:
name: coverage-artifacts-4
path: coverage

- name: Install dependencies
uses: ./.github/actions/catch-install-pnpm

- name: Merge coverage reports
run: node ./scripts/jest/merge-report-json.js

- name: Coverage test report
uses: ArtiomTr/jest-coverage-report-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
custom-title: 'Coverage report (${{ matrix.package_name }})'
coverage-file: ${{ matrix.package_path }}/coverage/report.json
base-coverage-file: ${{ matrix.package_path }}/coverage/report.json
skip-step: all
base-coverage-file: coverage-merged.json
coverage-file: coverage-merged.json

- name: Delete artifact
uses: geekyeggo/delete-artifact@v5
with:
name: |
coverage-artifacts-1
coverage-artifacts-2
coverage-artifacts-3
coverage-artifacts-4
7 changes: 3 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ dist
# testing
/ce_coverage
/coverage
**/coverage/**
/report.json
/coverage-merged
/coverage-merged.json

# production
/build
Expand Down Expand Up @@ -52,6 +53,4 @@ verdaccio
ftp-data


/scripts/cli/dms-kit-publish/docs

*.turbo
/scripts/cli/dms-kit-publish/docs
18 changes: 0 additions & 18 deletions .oxfmtrc.json

This file was deleted.

42 changes: 0 additions & 42 deletions .oxlintrc.json

This file was deleted.

6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,13 @@ docker_clean:
$(DOCKER) run -v $(MAIN_MODULE):/usr/src/app -w /usr/src/app --rm $(DOCKER_IMAGE) sh -c "git config --global --add safe.directory /usr/src/app && git clean -dfx"

docker_build_ce: pull_image docker_install_node_modules
$(DOCKER) run -v $(MAIN_MODULE):/usr/src/app --user $(UID):$(GID) -w /usr/src/app --rm $(DOCKER_IMAGE) sh -c "pnpm --filter base build:release"
$(DOCKER) run -v $(MAIN_MODULE):/usr/src/app --user $(UID):$(GID) -w /usr/src/app --rm $(DOCKER_IMAGE) sh -c "pnpm build"

docker_build_ee: pull_image docker_install_node_modules
$(DOCKER) run -v $(MAIN_MODULE):/usr/src/app --user $(UID):$(GID) -w /usr/src/app --rm $(DOCKER_IMAGE) sh -c "pnpm --filter base build:release:ee"
$(DOCKER) run -v $(MAIN_MODULE):/usr/src/app --user $(UID):$(GID) -w /usr/src/app --rm $(DOCKER_IMAGE) sh -c "pnpm build:ee"

docker_build_demo: pull_image docker_install_node_modules
$(DOCKER) run -v $(MAIN_MODULE):/usr/src/app --user $(UID):$(GID) -w /usr/src/app --rm $(DOCKER_IMAGE) sh -c "pnpm --filter base build:release:demo"
$(DOCKER) run -v $(MAIN_MODULE):/usr/src/app --user $(UID):$(GID) -w /usr/src/app --rm $(DOCKER_IMAGE) sh -c "pnpm build:demo"

docker_dms_kit_publish: docker_install_node_modules
$(DOCKER) run -v $(MAIN_MODULE):/usr/src/app --user $(UID):$(GID) -w /usr/src/app --rm \
Expand Down
101 changes: 101 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
import { defineConfig, globalIgnores } from 'eslint/config';
import globals from 'globals';
import tseslint from 'typescript-eslint';
import pluginReact from 'eslint-plugin-react';
import pluginImport from 'eslint-plugin-import';
import pluginReactHooks from 'eslint-plugin-react-hooks';
import pluginNode from 'eslint-plugin-node';

export default defineConfig([
tseslint.configs.recommended,
{
files: ['**/scripts/**/*.{js,mjs,cjs,ts,jsx,tsx}'],
plugins: {
import: pluginImport,
node: pluginNode
},
languageOptions: {
globals: {
...globals.node
}
},
rules: {
'@typescript-eslint/no-unused-vars': 'warn',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-require-imports': 'warn',
'@typescript-eslint/no-empty-object-type': 'off'
}
},
{
files: ['**/packages/**/*.{js,mjs,cjs,ts,jsx,tsx}'],
...pluginReact.configs.flat.recommended,
plugins: {
import: pluginImport,
react: pluginReact,
'react-hooks': pluginReactHooks
},
languageOptions: {
...pluginReact.configs.flat.recommended.languageOptions,
globals: {
...globals.browser
}
},
settings: {
react: {
pragma: 'React',
version: 'detect'
}
},
rules: {
...pluginReactHooks.configs.recommended.rules,
'no-shadow': 'off',
'@typescript-eslint/no-shadow': 'error',
'no-shadow-restricted-names': 'error',
'testing-library/render-result-naming-convention': 0,
'prefer-const': 'warn',
'@typescript-eslint/no-non-null-asserted-optional-chain': 0,
'@typescript-eslint/no-non-null-assertion': 0,
'no-extra-boolean-cast': 'off',
'import/no-anonymous-default-export': [2, { allowNew: true }],
'@typescript-eslint/no-empty-interface': [
'error',
{
allowSingleExtends: true
}
],
'@typescript-eslint/no-explicit-any': 'off',
'react/display-name': 0,
'react/prop-types': 'off',
'react/require-default-props': 'off',
'no-console': 'warn',
'@typescript-eslint/no-unused-vars': 'warn',
'no-template-curly-in-string': 'warn',
'@typescript-eslint/no-empty-object-type': 'off',
'@typescript-eslint/no-empty-function': 'warn',
'import/no-anonymous-default-export': 'warn'
}
},
globalIgnores([
'jest.config.js',
'eslint.config.mjs',
'**/packages/**/*.test.ts',
'**/packages/**/*.test.tsx',
'**/packages/shared/lib/api/*',
'**/packages/**/mockApi/*',
'**/packages/**/testUtil/*',
'**/packages/**/demo/*',
'**/packages/**/demos/*',
'jest-setup.ts',
'node_modules/*',
'**/packages/*/node_modules/*',
'**/scripts/jest/*.js',
'/**/node_modules/*',
'dist',
'packages/*/dist',
'packages/*/scripts',
'# config',
'vite.config.ts',
'.eslintrc.json',
'es'
])
]);
Loading
Loading