name: Code QA Roo Cline on: push: branches: [main] pull_request: types: [opened, reopened, ready_for_review, synchronize] branches: [main] env: NODE_VERSION: '18' jobs: compile: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js environment uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - name: Cache node modules id: cache-node-modules uses: actions/cache@v4 env: cache-name: cache-node-modules with: path: node_modules key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - name: Install dependencies run: npm run install:all - name: Compile TypeScript run: npm run compile unit-test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js environment uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - name: Cache node modules id: cache-node-modules uses: actions/cache@v4 env: cache-name: cache-node-modules with: path: node_modules key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node-${{ env.NODE_VERSION }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - name: Install dependencies run: npm run install:all - name: Run unit tests run: npm test