From 631c62ae071c6348a090864f009f13042b1821d6 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 11 Dec 2024 00:14:16 +0300 Subject: [PATCH] ci: build previws for the website on doc changes --- .github/workflows/docs-preview.yml | 78 ++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 .github/workflows/docs-preview.yml diff --git a/.github/workflows/docs-preview.yml b/.github/workflows/docs-preview.yml new file mode 100644 index 000000000..27e9878d6 --- /dev/null +++ b/.github/workflows/docs-preview.yml @@ -0,0 +1,78 @@ +name: Build and Preview Manual + +on: + workflow_dispatch: + pull_request: + types: [opened, synchronize, reopened] + paths: + - ".github/workflows/docs-preview.yml" + - "modules/**" + - "docs/**" + +jobs: + build-preview: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + + steps: + - name: Install Nix + uses: DeterminateSystems/nix-installer-action@main + - uses: DeterminateSystems/magic-nix-cache-action@main + + - name: Checkout + uses: actions/checkout@v4 + + - name: Set default git branch (to reduce log spam) + run: git config --global init.defaultBranch main + + - name: Build documentation packages + run: nix build .#docs-html --print-build-logs + + - name: Deploy to GitHub Pages preview + run: | + PR_NUMBER=${{ github.event.pull_request.number }} + BRANCH_NAME="gh-pages" + PREVIEW_DIR="docs-preview-${PR_NUMBER}" + + # Clone the gh-pages branch and move to the preview subdirectory + git clone --single-branch --branch $BRANCH_NAME https://github.com/${{ github.repository }} gh-pages + cd gh-pages + + mkdir -p $PREVIEW_DIR + + # Copy the build files to the preview subdirectory + cp -rvf ../result/share/doc/nvf/* ./$PREVIEW_DIR + + # Configure git to use the GitHub Actions token for authentication + git config --global user.name "GitHub Actions" + git config --global user.email "actions@github.com" + + # Set the GitHub token for authentication + git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} + + # Add and commit the changes + git add . + git commit -m "Deploy PR #${PR_NUMBER} preview" + git push origin $BRANCH_NAME + + - name: Set preview URL + id: set-url + run: | + PR_NUMBER=${{ github.event.pull_request.number }} + URL="https://.github.io//pr-preview-${PR_NUMBER}/" + echo "Live Preview URL: $URL" + echo "::set-output name=url::$URL" + + comment-url: + needs: build-preview + runs-on: ubuntu-latest + steps: + - name: Post live preview comment + uses: peter-evans/create-or-update-comment@v4 + with: + issue-number: ${{ github.event.pull_request.number }} + body: | + 🚀 Live preview is ready! + You can view it here: ${{ needs.build.outputs.url }}