ALPHA: wire is a tool to deploy nixos systems wire.althaea.zone/
at stable 85 lines 2.8 kB view raw
1--- 2name: "PR Preview" 3on: 4 push: 5jobs: 6 get-pr: 7 runs-on: ubuntu-latest 8 outputs: 9 number: ${{ steps.find-pr.outputs.number }} 10 permissions: {} 11 if: ${{ github.actor != 'dependabot[bot]' }} 12 steps: 13 - uses: jwalton/gh-find-current-pr@89ee5799558265a1e0e31fab792ebb4ee91c016b 14 id: find-pr 15 with: 16 state: all 17 base-ref: 18 runs-on: ubuntu-latest 19 permissions: {} 20 needs: get-pr 21 outputs: 22 base-ref: ${{ steps.base-ref.outputs.base-ref }} 23 if: ${{ needs.get-pr.outputs.number != '' }} 24 steps: 25 - run: sudo apt install -y jq 26 - name: Locate Base Ref 27 id: base-ref 28 run: | 29 echo "base-ref=$(gh api /repos/${{ github.repository }}/pulls/${NEEDS_GET_PR_OUTPUTS_NUMBER} | jq -r '.base.ref')" >> "$GITHUB_OUTPUT" 30 env: 31 GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 32 NEEDS_GET_PR_OUTPUTS_NUMBER: ${{ needs.get-pr.outputs.number }} 33 eval-base: 34 runs-on: ubuntu-latest 35 permissions: {} 36 needs: base-ref 37 outputs: 38 drv: ${{ steps.drv.outputs.drv }} 39 steps: 40 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 41 with: 42 ref: ${{ needs.base-ref.outputs.base-ref }} 43 persist-credentials: false 44 - uses: ./.github/actions/setup-nix 45 - id: drv 46 run: echo "drv=$(nix eval .#docs --json)" >> "$GITHUB_OUTPUT" 47 eval-head: 48 runs-on: ubuntu-latest 49 permissions: {} 50 needs: get-pr 51 outputs: 52 drv: ${{ steps.drv.outputs.drv }} 53 if: ${{ needs.get-pr.outputs.number != '' }} 54 steps: 55 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 56 with: 57 persist-credentials: false 58 - uses: ./.github/actions/setup-nix 59 - id: drv 60 run: echo "drv=$(nix eval .#docs --json)" >> "$GITHUB_OUTPUT" 61 deploy: 62 runs-on: ubuntu-latest 63 permissions: {} 64 needs: 65 - eval-head 66 - eval-base 67 - get-pr 68 environment: 69 name: pr-${{ needs.get-pr.outputs.number }} 70 url: https://pr-${{ needs.get-pr.outputs.number }}.wire-docs.pages.dev/ 71 # skip if nothing changed in the docs package 72 if: needs.eval-head.outputs.drv != needs.eval-base.outputs.drv 73 steps: 74 - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 75 with: 76 persist-credentials: false 77 - uses: ./.github/actions/setup-nix 78 - run: nix build .#docs 79 - name: Deploy to Cloudflare Pages 80 id: deployment 81 uses: cloudflare/wrangler-action@da0e0dfe58b7a431659754fdf3f186c529afbe65 82 with: 83 apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} 84 accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} 85 command: pages deploy ./result/ --project-name wire-docs --branch pr-${{ needs.get-pr.outputs.number }}