Merge pull request #156 from hivellm/add-ecc-aes-encryption #56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: JavaScript SDK Tests | |
| on: | |
| push: | |
| branches: [ master, main, develop ] | |
| paths: | |
| - 'sdks/javascript/**' | |
| - '.github/workflows/sdk-javascript-test.yml' | |
| pull_request: | |
| branches: [ '**' ] | |
| paths: | |
| - 'sdks/javascript/**' | |
| - '.github/workflows/sdk-javascript-test.yml' | |
| jobs: | |
| test: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ ubuntu-latest, windows-latest, macos-latest ] | |
| node-version: [ '18.x', '20.x' ] | |
| steps: | |
| - name: Checkout code (non-Windows) | |
| if: runner.os != 'Windows' | |
| uses: actions/checkout@v6 | |
| - name: Checkout code (Windows - skip reserved filenames) | |
| if: runner.os == 'Windows' | |
| shell: bash | |
| run: | | |
| git clone --no-checkout --depth 1 --filter=blob:none ${{ github.server_url }}/${{ github.repository }}.git . | |
| git sparse-checkout init --no-cone | |
| git sparse-checkout set '/*' ':!nul' ':!NUL' | |
| git checkout ${{ github.sha }} || git checkout ${{ github.ref_name }} | |
| - name: Setup Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: 'npm' | |
| cache-dependency-path: sdks/javascript/package-lock.json | |
| - name: Install dependencies | |
| working-directory: ./sdks/javascript | |
| run: npm ci | |
| - name: Build JavaScript SDK | |
| working-directory: ./sdks/javascript | |
| run: npm run build | |
| - name: Run tests (unit tests only, skip s2s) | |
| working-directory: ./sdks/javascript | |
| run: npm test | |
| env: | |
| VITEST_SKIP_S2S: true | |
| - name: Upload test results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: javascript-test-results-${{ matrix.os }}-${{ matrix.node-version }} | |
| path: sdks/javascript/coverage/ | |
| if-no-files-found: ignore | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20.x' | |
| cache: 'npm' | |
| cache-dependency-path: sdks/javascript/package-lock.json | |
| - name: Install dependencies | |
| working-directory: ./sdks/javascript | |
| run: npm ci | |
| - name: Run linter | |
| working-directory: ./sdks/javascript | |
| run: npm run lint || echo "Linting skipped (no lint script or errors)" | |
| build-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20.x' | |
| cache: 'npm' | |
| cache-dependency-path: sdks/javascript/package-lock.json | |
| - name: Install dependencies | |
| working-directory: ./sdks/javascript | |
| run: npm ci | |
| - name: Build SDK | |
| working-directory: ./sdks/javascript | |
| run: npm run build | |
| - name: Check build artifacts | |
| working-directory: ./sdks/javascript | |
| run: | | |
| if [ ! -d "dist" ]; then | |
| echo "Build failed: dist directory not found" | |
| exit 1 | |
| fi | |
| if [ ! -f "dist/index.js" ]; then | |
| echo "Build failed: dist/index.js not found" | |
| exit 1 | |
| fi | |
| echo "Build artifacts verified successfully" |