name: Continuous Integration on: pull_request: {} push: branches: - master # Allow manual runs if needed. workflow_dispatch: {} jobs: lint: name: Lint Code runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: npm cache-dependency-path: 'package.json' - name: Install dependencies run: npm install - name: JSHint run: npm run lint build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: npm cache-dependency-path: 'package.json' - name: Install dependencies run: npm install - name: Build run: npm run dist-build node-tests: runs-on: ubuntu-latest strategy: matrix: node_version: [8, 10, 12, 14, 16, 18, 20] steps: - uses: actions/checkout@v4 - name: Install Node.js uses: actions/setup-node@v4 with: node-version: ${{ matrix.node_version }} cache: npm cache-dependency-path: 'package.json' - name: Install dependencies run: npm install - name: Unit Tests run: npm run test-node browser-tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: npm cache-dependency-path: 'package.json' - name: Install dependencies run: npm install - name: Unit Tests run: npm run test-browser types: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: npm cache-dependency-path: 'package.json' - name: Install dependencies run: npm install - name: Typescript Tests run: npm run test-types