name: test on: [push, pull_request, workflow_call] env: npm_config_cache: /tmp/npm-cache jobs: lint-and-spellcheck: runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: "Checkout code" uses: actions/checkout@v4 - name: "Use Node.js" uses: actions/setup-node@v4 with: node-version: 'lts/*' - run: npm install - name: Run lint check run: npm run lint - name: Run spell check run: npm run test-spelling unit-tests: runs-on: ubuntu-latest strategy: matrix: node-version: - 18.x - 20.x - 22.x steps: - name: checkout uses: actions/checkout@v4 - name: setup Node.js v${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - id: cache-npm name: restore npm cache uses: actions/cache@v4 with: key: npm-cache-${{ github.ref_name }}-${{ matrix.node-version }}-unit-tests path: ${{ env.npm_config_cache }} - run: npm install - run: npm run test-unit integration-tests: runs-on: ubuntu-latest strategy: matrix: node-version: - 18.x - 20.x - 22.x steps: - name: checkout uses: actions/checkout@v4 - name: setup Node.js v${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - id: cache-npm name: restore npm cache uses: actions/cache@v4 with: key: npm-cache-${{ github.ref_name }}-${{ matrix.node-version }}-integration-tests path: ${{ env.npm_config_cache }} - run: npm install - run: npm run test-integration # e2e-tests: # needs: [unit-tests, integration-tests] # runs-on: ubuntu-latest # strategy: # matrix: # node-version: [18.x] # steps: # - name: checkout # uses: actions/checkout@v4 # - name: setup Node.js v${{ matrix.node-version }} # uses: actions/setup-node@v4 # with: # node-version: ${{ matrix.node-version }} # # - id: cache-npm # name: restore npm cache # uses: actions/cache@v4 # with: # key: npm-cache-${{ github.ref_name }}-${{ matrix.node-version }}-e2e-tests # path: ${{ env.npm_config_cache }} # - run: npm install # # - run: npm run test-e2e