name: CI Pipeline on: push: branches: - master pull_request: branches: - master jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: "20" cache: "npm" registry-url: https://registry.npmjs.org cache-dependency-path: package-lock.json - name: Retrieve dependencies id: "modules_cache" uses: actions/cache@v4 with: path: node_modules key: node-modules-${{ runner.os }}-${{ hashFiles('package-lock.json') }} restore-keys: | node-modules-${{ runner.os }}- - name: Install dependencies if: steps.modules_cache.outputs.cache-hit != 'true' run: npm install - name: Run typescript run: npm run tsc - name: Run linter run: npm run lint - name: Run tests run: npm run test - name: Build the project run: npm run build