name: CI - Lint, Typecheck & Test on: pull_request: concurrency: group: deploy-pipeline cancel-in-progress: true jobs: quality-assurance: runs-on: docker env: PUPPETEER_EXECUTABLE_PATH: /usr/bin/chromium steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v3 with: version: 10 run_install: false - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: ๐Ÿ” Registry Auth run: | echo "@mintel:registry=https://git.infra.mintel.me/api/packages/mmintel/npm" > .npmrc echo "//git.infra.mintel.me/api/packages/mmintel/npm/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc - name: Install dependencies run: | pnpm store prune pnpm install --no-frozen-lockfile - name: ๐ŸŒ Install Chromium (Native & ARM64) run: | rm -f /etc/apt/apt.conf.d/docker-clean apt-get update apt-get install -y gnupg wget ca-certificates OS_ID=$(. /etc/os-release && echo $ID) CODENAME=$(. /etc/os-release && echo $VERSION_CODENAME) if [ "$OS_ID" = "debian" ]; then apt-get install -y chromium else mkdir -p /etc/apt/keyrings KEY_ID="82BB6851C64F6880" wget -qO- "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x$KEY_ID" | gpg --dearmor > /etc/apt/keyrings/xtradeb.gpg echo "deb [signed-by=/etc/apt/keyrings/xtradeb.gpg] http://ppa.launchpad.net/xtradeb/apps/ubuntu $CODENAME main" > /etc/apt/sources.list.d/xtradeb-ppa.list printf "Package: *\nPin: release o=LP-PPA-xtradeb-apps\nPin-Priority: 1001\n" > /etc/apt/preferences.d/xtradeb apt-get update apt-get install -y --allow-downgrades chromium fi [ -f /usr/bin/chromium ] && ln -sf /usr/bin/chromium /usr/bin/google-chrome [ -f /usr/bin/chromium ] && ln -sf /usr/bin/chromium /usr/bin/chromium-browser - name: ๐Ÿงช QA Checks env: TURBO_TELEMETRY_DISABLED: "1" run: npx turbo run lint typecheck test --cache-dir=".turbo" - name: ๐Ÿ—๏ธ Build run: pnpm build - name: โ™ฟ Accessibility Check run: pnpm start-server-and-test start http://localhost:3000 "pnpm check:a11y http://localhost:3000" - name: โ™ฟ WCAG Sitemap Audit run: pnpm start-server-and-test start http://localhost:3000 "pnpm run check:wcag http://localhost:3000" # monitor trigger