name: Run backend tests concurrency: group: build-${{ github.ref }} cancel-in-progress: true on: pull_request: types: [opened, synchronize, reopened] paths: - "server/**.js" - "collector/**.js" jobs: run-script: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: '18' - name: Cache root dependencies uses: actions/cache@v3 with: path: | node_modules ~/.cache/yarn key: ${{ runner.os }}-yarn-root-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn-root- - name: Cache server dependencies uses: actions/cache@v3 with: path: | server/node_modules ~/.cache/yarn key: ${{ runner.os }}-yarn-server-${{ hashFiles('server/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn-server- - name: Cache collector dependencies uses: actions/cache@v3 with: path: | collector/node_modules ~/.cache/yarn key: ${{ runner.os }}-yarn-collector-${{ hashFiles('collector/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn-collector- - name: Install root dependencies if: steps.cache-root.outputs.cache-hit != 'true' run: yarn install --frozen-lockfile - name: Install server dependencies if: steps.cache-server.outputs.cache-hit != 'true' run: cd server && yarn install --frozen-lockfile - name: Install collector dependencies if: steps.cache-collector.outputs.cache-hit != 'true' run: cd collector && yarn install --frozen-lockfile - name: Setup environment and Prisma run: yarn setup:envs && yarn prisma:setup - name: Run test suites run: yarn test - name: Fail job on error if: failure() run: exit 1