name: CI on: push: branches: [main] pull_request: jobs: build-and-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: npm - name: Install dependencies run: npm ci - name: Typecheck (front + shared tsconfig) run: npx tsc --noEmit - name: Build Angular app run: npm run build - name: Server tests (playlists visibility) run: npm run test:playlists - name: Server tests (download jobs) run: npm run test:downloads - name: Server tests (preferences) run: npm run test:preferences - name: Server tests (telemetry) run: npm run test:telemetry - name: Unit tests (search UX) run: npm run test:search - name: E2E scenarios (search UX) run: npm run test:search-e2e - name: Suggest typeahead (Step 15) run: npm run test:suggest - name: Transcripts (Step 16) run: npm run test:transcript - name: YouTube scrape-first (Step 17, offline) run: npm run test:ytscrape - name: YouTube InnerTube (Step 18, offline) run: npm run test:ytinnertube