diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32243e42d..b42f2cf7b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,17 +32,15 @@ jobs: uses: useblacksmith/setup-node@v5 with: node-version: 22 - - - name: Get pnpm store directory - shell: bash + cache: 'pnpm' + + - name: Fix pnpm store permissions run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - - name: Mount pnpm store sticky disk - uses: useblacksmith/stickydisk@v1 - with: - key: ${{ github.repository }}-pnpm-store - path: ${{ env.STORE_PATH }} + STORE_PATH=$(pnpm store path --silent) + if [ -d "$STORE_PATH" ]; then + sudo chown -R $(whoami):$(whoami) "$STORE_PATH" || true + chmod -R u+rw "$STORE_PATH" || true + fi - name: Check if lockfile changed id: lockfile-check @@ -58,10 +56,7 @@ jobs: run: pnpm fetch --frozen-lockfile - name: Install dependencies - run: | - # Clean install from pnpm store (already cached in sticky disk) - rm -rf node_modules - pnpm install --frozen-lockfile --prefer-offline + run: pnpm install --frozen-lockfile --prefer-offline # Build job - runs in parallel build: diff --git a/.github/workflows/database-migrations.yml b/.github/workflows/database-migrations.yml index 21f568acc..27bc63ef4 100644 --- a/.github/workflows/database-migrations.yml +++ b/.github/workflows/database-migrations.yml @@ -20,26 +20,24 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup Node.js - uses: useblacksmith/setup-node@v5 - with: - node-version: 22 - - name: Install pnpm uses: pnpm/action-setup@v2 with: version: 9.15.0 - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - - name: Mount pnpm store sticky disk - uses: useblacksmith/stickydisk@v1 + - name: Setup Node.js + uses: useblacksmith/setup-node@v5 with: - key: ${{ github.repository }}-pnpm-store - path: ${{ env.STORE_PATH }} + node-version: 22 + cache: 'pnpm' + + - name: Fix pnpm store permissions + run: | + STORE_PATH=$(pnpm store path --silent) + if [ -d "$STORE_PATH" ]; then + sudo chown -R $(whoami):$(whoami) "$STORE_PATH" || true + chmod -R u+rw "$STORE_PATH" || true + fi - name: Mount Turbo cache sticky disk uses: useblacksmith/stickydisk@v1 @@ -48,10 +46,7 @@ jobs: path: ./.turbo - name: Install dependencies - run: | - # Remove any existing node_modules to avoid conflicts - rm -rf node_modules - pnpm install --frozen-lockfile --prefer-offline + run: pnpm install --frozen-lockfile --prefer-offline - name: Run migrations run: pnpm run db:migrate diff --git a/.github/workflows/docker-build-server.yml b/.github/workflows/docker-build-server.yml index 17ad67072..fb27ae7b0 100644 --- a/.github/workflows/docker-build-server.yml +++ b/.github/workflows/docker-build-server.yml @@ -40,33 +40,25 @@ jobs: uses: useblacksmith/setup-node@v5 with: node-version: 22 + cache: 'pnpm' + + - name: Fix pnpm store permissions + run: | + STORE_PATH=$(pnpm store path --silent) + if [ -d "$STORE_PATH" ]; then + sudo chown -R $(whoami):$(whoami) "$STORE_PATH" || true + chmod -R u+rw "$STORE_PATH" || true + fi - name: Install bun run: npm install -g bun@1.2.15 - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - - name: Mount pnpm store sticky disk - uses: useblacksmith/stickydisk@v1 - with: - key: ${{ github.repository }}-pnpm-store - path: ${{ env.STORE_PATH }} - - name: Mount Turbo cache sticky disk uses: useblacksmith/stickydisk@v1 with: key: ${{ github.repository }}-turbo-cache path: ./.turbo - - name: Mount npm cache sticky disk - uses: useblacksmith/stickydisk@v1 - with: - key: ${{ github.repository }}-npm-cache - path: ~/.npm - - name: Mount Docker buildkit sticky disk uses: useblacksmith/stickydisk@v1 with: diff --git a/.github/workflows/trigger-deployment.yml b/.github/workflows/trigger-deployment.yml index 23ba2663d..8d66bc9f3 100644 --- a/.github/workflows/trigger-deployment.yml +++ b/.github/workflows/trigger-deployment.yml @@ -17,26 +17,24 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Setup Node.js - uses: useblacksmith/setup-node@v5 - with: - node-version: 22 - - name: Install pnpm uses: pnpm/action-setup@v2 with: version: 9.15.0 - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - - name: Mount pnpm store sticky disk - uses: useblacksmith/stickydisk@v1 + - name: Setup Node.js + uses: useblacksmith/setup-node@v5 with: - key: ${{ github.repository }}-pnpm-store - path: ${{ env.STORE_PATH }} + node-version: 22 + cache: 'pnpm' + + - name: Fix pnpm store permissions + run: | + STORE_PATH=$(pnpm store path --silent) + if [ -d "$STORE_PATH" ]; then + sudo chown -R $(whoami):$(whoami) "$STORE_PATH" || true + chmod -R u+rw "$STORE_PATH" || true + fi - name: Mount Turbo cache sticky disk uses: useblacksmith/stickydisk@v1 @@ -45,10 +43,7 @@ jobs: path: ./.turbo - name: Install dependencies - run: | - # Remove any existing node_modules to avoid conflicts - rm -rf node_modules - pnpm install --frozen-lockfile --prefer-offline + run: pnpm install --frozen-lockfile --prefer-offline - name: 🚀 Deploy to ${{ github.ref_name == 'main' && 'Production' || 'Staging' }} env: