@@ -81,11 +81,50 @@ jobs:
8181
8282 steps :
8383 - uses : actions/checkout@v4
84+ with :
85+ fetch-depth : 0
8486
8587 - uses : actions/setup-node@v4
8688 with :
8789 node-version-file : .tool-versions
8890
89- - run : yarn
90-
91- - run : yarn turbo test
91+ - name : Get changed files
92+ id : changed-files
93+ uses : tj-actions/changed-files@v45
94+ with :
95+ files : |
96+ plugins/*/src/**
97+ plugins/*/test/**
98+ plugins/*/*.test.ts
99+ plugins/*/*.test.tsx
100+ plugins/*/vitest.config.ts
101+ plugins/*/test-setup.ts
102+
103+ - name : Install dependencies
104+ if : steps.changed-files.outputs.any_changed == 'true'
105+ run : yarn
106+
107+ - name : Get changed plugins
108+ if : steps.changed-files.outputs.any_changed == 'true'
109+ id : changed-plugins
110+ run : |
111+ # Extract unique plugin names from changed files
112+ PLUGINS=$(echo "${{ steps.changed-files.outputs.all_changed_files }}" | \
113+ grep -E '^plugins/[^/]+/' | \
114+ cut -d'/' -f2 | \
115+ sort -u | \
116+ tr '\n' ' ')
117+ echo "plugins=$PLUGINS" >> $GITHUB_OUTPUT
118+ echo "Changed plugins: $PLUGINS"
119+
120+ - name : Run tests for changed plugins
121+ if : steps.changed-files.outputs.any_changed == 'true' && steps.changed-plugins.outputs.plugins != ''
122+ run : |
123+ for plugin in ${{ steps.changed-plugins.outputs.plugins }}; do
124+ echo "Checking tests for plugin: $plugin"
125+ if [ -f "plugins/$plugin/package.json" ] && grep -q '"check-vitest"' "plugins/$plugin/package.json"; then
126+ yarn workspace $plugin check-vitest
127+ else
128+ echo "No check-vitest script found for $plugin, skipping..."
129+ fi
130+ done
0 commit comments