name: Test on: workflow_dispatch: pull_request: push: branches: [main] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: MISE_TRUSTED_CONFIG_PATHS: ${{ github.workspace }}/.mise/config.toml jobs: test: name: Test runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - name: Setup Mise uses: immich-app/devtools/actions/use-mise@035e80a7d4355d5f087ffb95db9e4a0944c04e56 # use-mise-action-v1.1.3 - name: Get pnpm store directory id: pnpm-store run: echo "path=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT" - name: Cache pnpm store uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: path: ${{ steps.pnpm-store.outputs.path }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - name: Run install run: pnpm install --frozen-lockfile - name: Build packages run: pnpm build:packages - name: Run sync run: pnpm sync if: ${{ !cancelled() }} - name: Type check run: pnpm check if: ${{ !cancelled() }} - name: Run linter run: pnpm lint if: ${{ !cancelled() }} - name: Run formatter run: pnpm format if: ${{ !cancelled() }} - name: Run unit tests run: pnpm test if: ${{ !cancelled() }} - name: Run medium tests run: pnpm test:medium if: ${{ !cancelled() }}