diff --git a/.github/workflows/deploy-docs-preview.yml b/.github/workflows/deploy-docs-preview.yml new file mode 100644 index 0000000000..0036f5681a --- /dev/null +++ b/.github/workflows/deploy-docs-preview.yml @@ -0,0 +1,75 @@ +name: Deploy Docs Preview + +permissions: {} + +on: + pull_request: + paths: + - 'docs/**' + - 'packages/cli/install.sh' + - 'packages/cli/install.ps1' + - '.github/workflows/deploy-docs-preview.yml' + +concurrency: + group: deploy-docs-preview-${{ github.event.pull_request.number }} + cancel-in-progress: true + +defaults: + run: + shell: bash + +jobs: + staging-deploy: + if: github.repository == 'voidzero-dev/vite-plus' + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + env: + VOID_PROJECT: viteplus-staging + PREVIEW_URL: https://viteplus-staging.void.app/ + steps: + - uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2 + + - uses: voidzero-dev/setup-vp@ca1c46663915d6c1042ae23bd39ab85718bfb0fa # v1.10.0 + with: + cache: true + working-directory: docs + cache-dependency-path: docs/pnpm-lock.yaml + + - run: vp run build + working-directory: docs + + - run: vpx void deploy --dir docs/.vitepress/dist + env: + VOID_TOKEN: ${{ secrets.VOID_TOKEN }} + + - name: Comment on PR + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + env: + PREVIEW_URL: ${{ env.PREVIEW_URL }} + with: + script: | + const marker = ''; + const body = `${marker}\n✅ Staging deployment successful!\n\nPreview: ${process.env.PREVIEW_URL}\nCommit: ${context.payload.pull_request.head.sha}`; + const comments = await github.paginate(github.rest.issues.listComments, { + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + }); + const existing = comments.find(c => c.body.includes(marker)); + if (existing) { + await github.rest.issues.updateComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: existing.id, + body, + }); + } else { + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body, + }); + } diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000000..e6e4dee3d2 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,45 @@ +name: Deploy Docs + +permissions: {} + +on: + push: + branches: [main] + paths: + - 'docs/**' + - 'packages/cli/install.sh' + - 'packages/cli/install.ps1' + - '.github/workflows/deploy-docs.yml' + workflow_dispatch: + +concurrency: + group: deploy-docs + cancel-in-progress: false + +defaults: + run: + shell: bash + +jobs: + deploy: + if: github.repository == 'voidzero-dev/vite-plus' + runs-on: ubuntu-latest + permissions: + contents: read + env: + VOID_PROJECT: viteplus + steps: + - uses: taiki-e/checkout-action@7d1e50e93dc4fb3bba58f85018fadf77898aee8b # v1.4.2 + + - uses: voidzero-dev/setup-vp@ca1c46663915d6c1042ae23bd39ab85718bfb0fa # v1.10.0 + with: + cache: true + working-directory: docs + cache-dependency-path: docs/pnpm-lock.yaml + + - run: vp run build + working-directory: docs + + - run: vpx void deploy --dir docs/.vitepress/dist + env: + VOID_TOKEN: ${{ secrets.VOID_TOKEN }} diff --git a/.gitignore b/.gitignore index 7821398421..1defa1dc72 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ rolldown rolldown-vite vite /crates/vite_global_cli/vp +.void/