name: Validation applicative on: push: branches: [main, master] paths-ignore: - "**.md" - "docs/**" pull_request: branches: [main, master] paths-ignore: - "**.md" - "docs/**" workflow_dispatch: jobs: verify: name: TypeScript, tests et build # Label dédié : image locale avec Node 22, pnpm verrouillé et Bash déjà installés. runs-on: ci-node22 timeout-minutes: 15 steps: - name: Récupérer les sources uses: actions/checkout@v4 - name: Calculer la clé de cache pnpm id: pnpm-cache-key shell: bash run: | echo "store=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT" echo "lock=$(sha256sum pnpm-lock.yaml | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT" - name: Restaurer le store pnpm uses: actions/cache@v4 with: path: ${{ steps.pnpm-cache-key.outputs.store }} key: pnpm-${{ runner.os }}-${{ steps.pnpm-cache-key.outputs.lock }} restore-keys: | pnpm-${{ runner.os }}- - name: Installer les dépendances verrouillées run: pnpm install --frozen-lockfile --prefer-offline - name: Vérifier TypeScript, tests et build run: pnpm verify