name: JavaScript SDK Tests on: push: branches: [ main, develop ] paths: - 'packages/js/**' - '.gitea/workflows/js-sdk-tests.yml' pull_request: branches: [ main, develop ] paths: - 'packages/js/**' - '.gitea/workflows/js-sdk-tests.yml' workflow_dispatch: # Prevent parallel execution concurrency: group: js-sdk-tests-${{ github.ref }} cancel-in-progress: true jobs: test-js-sdk: runs-on: debian steps: - name: Checkout repository uses: actions/checkout@v4 - name: Verify Node.js version run: | echo "=== VERIFYING NODE.JS ===" node --version npm --version echo "✅ Using system Node.js" - name: Install dependencies working-directory: packages/js/aitbc-sdk run: | echo "=== INSTALLING JS SDK DEPENDENCIES ===" if [ -f package-lock.json ]; then npm ci else npm install fi echo "✅ Dependencies installed" - name: Build TypeScript working-directory: packages/js/aitbc-sdk run: | echo "=== BUILDING TYPESCRIPT ===" npm run build echo "✅ TypeScript build completed" - name: Run ESLint working-directory: packages/js/aitbc-sdk run: | echo "=== RUNNING ESLINT ===" npm run lint echo "✅ ESLint checks passed" - name: Check Prettier formatting working-directory: packages/js/aitbc-sdk run: | echo "=== CHECKING PRETTIER FORMATTING ===" npx prettier --check "src/**/*.ts" echo "✅ Prettier formatting checks passed" - name: Create test results directory working-directory: packages/js/aitbc-sdk run: | mkdir -p test-results echo "✅ Test results directory created" - name: Run vitest tests working-directory: packages/js/aitbc-sdk run: | echo "=== RUNNING VITEST ===" npm run test echo "✅ Vitest tests completed" - name: Upload test results if: always() uses: actions/upload-artifact@v3 with: name: js-sdk-test-results path: packages/js/aitbc-sdk/test-results/ retention-days: 30 - name: Test Summary if: always() run: | echo "=== JS SDK TEST SUMMARY ===" echo "✅ TypeScript build: completed" echo "✅ ESLint: passed" echo "✅ Prettier: passed" echo "✅ Vitest tests: completed" echo "✅ JavaScript SDK tests finished successfully"