--- name: "PR Preview" on: push: jobs: get-pr: runs-on: ubuntu-latest outputs: number: ${{ steps.find-pr.outputs.number }} if: ${{ github.actor != 'dependabot[bot]' }} steps: - uses: jwalton/gh-find-current-pr@master id: find-pr with: state: all base-ref: runs-on: ubuntu-latest needs: get-pr outputs: base-ref: ${{ steps.base-ref.outputs.base-ref }} if: ${{ needs.get-pr.outputs.number != '' }} steps: - run: sudo apt install -y jq - name: Locate Base Ref id: base-ref run: | echo "base-ref=$(gh api /repos/${{ github.repository }}/pulls/${{ needs.get-pr.outputs.number }} | jq -r '.base.ref')" >> "$GITHUB_OUTPUT" env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} eval-base: runs-on: ubuntu-latest needs: base-ref outputs: drv: ${{ steps.drv.outputs.drv }} steps: - uses: actions/checkout@v6 with: ref: ${{ needs.base-ref.outputs.base-ref }} - uses: ./.github/actions/setup-nix - id: drv run: echo "drv=$(nix eval .#docs --json)" >> "$GITHUB_OUTPUT" eval-head: runs-on: ubuntu-latest needs: get-pr outputs: drv: ${{ steps.drv.outputs.drv }} if: ${{ needs.get-pr.outputs.number != '' }} steps: - uses: actions/checkout@v6 - uses: ./.github/actions/setup-nix - id: drv run: echo "drv=$(nix eval .#docs --json)" >> "$GITHUB_OUTPUT" deploy: runs-on: ubuntu-latest needs: - eval-head - eval-base - get-pr environment: name: pr-${{ needs.get-pr.outputs.number }} url: https://pr-${{ needs.get-pr.outputs.number }}.wire-docs.pages.dev/ # skip if nothing changed in the docs package if: needs.eval-head.outputs.drv != needs.eval-base.outputs.drv steps: - uses: actions/checkout@v6 - uses: ./.github/actions/setup-nix - run: nix build .#docs - name: Deploy to Cloudflare Pages id: deployment uses: cloudflare/wrangler-action@v3 with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} command: pages deploy ./result/ --project-name wire-docs --branch pr-${{ needs.get-pr.outputs.number }}