diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ec5c11a4..ea481bcf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,15 +23,15 @@ jobs: name: typecheck · lint · test · validate runs-on: ubuntu-latest steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 - name: Install pnpm - uses: pnpm/action-setup@f40ffcd9367d9f12939873eb1018b921a783ffaa # v4 + uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: run_install: false - name: Install Node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: ${{ env.NODE_VERSION }} cache: pnpm @@ -40,7 +40,7 @@ jobs: run: pnpm install --frozen-lockfile - name: Restore Turbo cache - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 + uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: .turbo key: turbo-${{ runner.os }}-${{ github.sha }} @@ -92,5 +92,5 @@ jobs: runs-on: ubuntu-latest needs: verify steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 - run: echo "Topic PR detected — verify job already exercised the contract gate." diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 41d83921..6f8a7eda 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -28,21 +28,21 @@ jobs: packages: write steps: - name: Checkout - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 - name: Owner in lowercase (ghcr требует нижний регистр) id: owner run: echo "lc=${GITHUB_REPOSITORY_OWNER,,}" >> "$GITHUB_OUTPUT" - name: Log in to ghcr.io - uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3 + uses: docker/login-action@371161bbe7024a29a25c5e19bfcbc0804fe9ad2c # v4.5.2 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Set up Buildx - uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3 + uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0 # web несёт зашитые при сборке значения (домен и путь админки) - берём из # secrets, чтобы не светить их в репозитории. VITE_GITHUB_URL не секрет (просто @@ -53,7 +53,7 @@ jobs: # HTML как data-website-id), поэтому repo Variable; допускаем и Secret через # фолбэк. Пусто -> плагин трекер не рендерит, сборка не падает. - name: Build & push web - uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6 + uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0 with: context: . file: apps/web/Dockerfile @@ -70,7 +70,7 @@ jobs: # api секретов в образе не несёт - ADMIN_* читаются из .env на сервере. - name: Build & push api - uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6 + uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0 with: context: . file: apps/api/Dockerfile @@ -98,7 +98,7 @@ jobs: test -n "$DEPLOY_SSH_KEY" || { echo "::error::Missing secret DEPLOY_SSH_KEY"; exit 1; } - name: Deploy via SSH (pull only, без сборки) - uses: appleboy/ssh-action@029f5b4aeeeb58fdfe1410a5d17f967dacf36262 # v1.0.3 + uses: appleboy/ssh-action@0ff4204d59e8e51228ff73bce53f80d53301dee2 # v1.2.5 with: host: ${{ secrets.DEPLOY_HOST }} username: ${{ secrets.DEPLOY_USER }}