deploy_cloudflare.yml

 1name: Deploy Docs
 2
 3on:
 4  push:
 5    branches:
 6      - main
 7
 8jobs:
 9  deploy-docs:
10    name: Deploy Docs
11    if: github.repository_owner == 'zed-industries'
12    runs-on: ubuntu-latest
13
14    steps:
15      - name: Checkout repo
16        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
17        with:
18          clean: false
19
20      - name: Setup mdBook
21        uses: peaceiris/actions-mdbook@ee69d230fe19748b7abf22df32acaa93833fad08 # v2
22        with:
23          mdbook-version: "0.4.37"
24
25      - name: Set up default .cargo/config.toml
26        run: cp ./.cargo/collab-config.toml ./.cargo/config.toml
27
28      - name: Install system dependencies
29        run: |
30          sudo apt-get update
31          sudo apt-get install libxkbcommon-dev libxkbcommon-x11-dev
32
33      - name: Build book
34        run: |
35          set -euo pipefail
36          mkdir -p target/deploy
37          mdbook build ./docs --dest-dir=../target/deploy/docs/
38
39      - name: Deploy Docs
40        uses: cloudflare/wrangler-action@da0e0dfe58b7a431659754fdf3f186c529afbe65 # v3
41        with:
42          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
43          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
44          command: pages deploy target/deploy --project-name=docs
45
46      - name: Deploy Install
47        uses: cloudflare/wrangler-action@da0e0dfe58b7a431659754fdf3f186c529afbe65 # v3
48        with:
49          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
50          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
51          command: r2 object put -f script/install.sh zed-open-source-website-assets/install.sh
52
53      - name: Deploy Docs Workers
54        uses: cloudflare/wrangler-action@da0e0dfe58b7a431659754fdf3f186c529afbe65 # v3
55        with:
56          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
57          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
58          command: deploy .cloudflare/docs-proxy/src/worker.js
59
60      - name: Deploy Install Workers
61        uses: cloudflare/wrangler-action@da0e0dfe58b7a431659754fdf3f186c529afbe65 # v3
62        with:
63          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
64          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
65          command: deploy .cloudflare/docs-proxy/src/worker.js
66
67      - name: Preserve Wrangler logs
68        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
69        if: always()
70        with:
71          name: wrangler_logs
72          path: /home/runner/.config/.wrangler/logs/