name: CI on: push: branches: ["main"] pull_request: types: [opened, synchronize] merge_group: types: [ checks_requested ] jobs: build: name: Build, Test, and Lint runs-on: ubuntu-22.04 steps: - name: Check out code uses: actions/checkout@v4 with: fetch-depth: 2 - name: Cache turbo build setup uses: actions/cache@v4 with: path: .turbo key: ${{ runner.os }}-turbo-${{ github.sha }} restore-keys: | ${{ runner.os }}-turbo- - name: Install build dependencies run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf - name: Setup Node.JS environment uses: actions/setup-node@v4 with: node-version: 20 - name: Install pnpm via corepack shell: bash run: | corepack enable corepack prepare --activate - name: Get pnpm store directory id: pnpm-cache shell: bash run: | echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - uses: actions/cache@v4 name: Setup pnpm cache with: path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - name: Install dependencies run: pnpm install - name: Build run: pnpm build - name: Lint run: pnpm lint - name: Test run: pnpm test