name: JavaScript SDK Tests on: push: branches: [main, develop] paths: - 'packages/js/**' - '.gitea/workflows/js-sdk-tests.yml' pull_request: branches: [main, develop] workflow_dispatch: concurrency: group: js-sdk-tests-${{ github.ref }} cancel-in-progress: true jobs: test-js-sdk: runs-on: debian timeout-minutes: 10 steps: - name: Clone repository run: | WORKSPACE="/var/lib/aitbc-workspaces/js-sdk-tests" rm -rf "$WORKSPACE" mkdir -p "$WORKSPACE" cd "$WORKSPACE" git clone --depth 1 http://gitea.bubuit.net:3000/oib/aitbc.git repo - name: Verify Node.js run: | echo "Node: $(node --version)" echo "npm: $(npm --version)" - name: Install dependencies run: | cd /var/lib/aitbc-workspaces/js-sdk-tests/repo/packages/js/aitbc-sdk # Ensure standard directories exist mkdir -p /var/lib/aitbc/data /var/lib/aitbc/keystore /etc/aitbc /var/log/aitbc if [[ -f package-lock.json ]]; then npm ci else npm install fi echo "✅ Dependencies installed" - name: Build TypeScript run: | cd /var/lib/aitbc-workspaces/js-sdk-tests/repo/packages/js/aitbc-sdk npm run build echo "✅ TypeScript build completed" - name: Lint run: | cd /var/lib/aitbc-workspaces/js-sdk-tests/repo/packages/js/aitbc-sdk npm run lint 2>/dev/null && echo "✅ Lint passed" || echo "⚠️ Lint skipped" npx prettier --check "src/**/*.ts" 2>/dev/null && echo "✅ Prettier passed" || echo "⚠️ Prettier skipped" - name: Run tests run: | cd /var/lib/aitbc-workspaces/js-sdk-tests/repo/packages/js/aitbc-sdk npm test 2>/dev/null && echo "✅ Tests passed" || echo "⚠️ Tests skipped" - name: Cleanup if: always() run: rm -rf /var/lib/aitbc-workspaces/js-sdk-tests