|
9 | 9 | docs: |
10 | 10 | name: Build and Deploy Docs |
11 | 11 | runs-on: ubuntu-latest |
12 | | - |
| 12 | + |
13 | 13 | steps: |
14 | 14 | - name: Checkout code |
15 | 15 | uses: actions/checkout@v4 |
16 | | - |
| 16 | + |
17 | 17 | - name: Set up Python |
18 | 18 | uses: actions/setup-python@v5 |
19 | 19 | with: |
20 | 20 | python-version: "3.12" |
21 | | - |
| 21 | + |
22 | 22 | - name: Install dependencies |
23 | 23 | run: | |
24 | 24 | pip install uv |
25 | 25 | uv sync |
26 | | -
|
| 26 | + |
27 | 27 | - name: Build docs |
28 | 28 | run: | |
29 | 29 | make build-docs |
30 | | -
|
31 | | - # (Optional but recommended) Ensure AWS CLI is available |
32 | | - - name: Install AWS CLI |
| 30 | + |
| 31 | + - name: Setup rclone |
33 | 32 | run: | |
34 | | - sudo apt-get update |
35 | | - sudo apt-get install -y awscli |
36 | | -
|
37 | | - - name: Configure AWS CLI for Cloudflare R2 |
38 | | - uses: aws-actions/configure-aws-credentials@v4 |
39 | | - with: |
40 | | - aws-access-key-id: ${{ secrets.R2_ACCESS_KEY_ID }} |
41 | | - aws-secret-access-key: ${{ secrets.R2_SECRET_ACCESS_KEY }} |
42 | | - aws-region: auto |
43 | | - |
| 33 | + curl https://rclone.org/install.sh | sudo bash |
| 34 | + |
| 35 | + - name: Configure rclone for Cloudflare R2 |
| 36 | + env: |
| 37 | + R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} |
| 38 | + R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} |
| 39 | + R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }} |
| 40 | + R2_BUCKET_NAME: ${{ secrets.R2_BUCKET_NAME }} |
| 41 | + run: | |
| 42 | + mkdir -p ~/.config/rclone |
| 43 | + cat << EOF > ~/.config/rclone/rclone.conf |
| 44 | + [r2] |
| 45 | + type = s3 |
| 46 | + provider = Cloudflare |
| 47 | + access_key_id = ${R2_ACCESS_KEY_ID} |
| 48 | + secret_access_key = ${R2_SECRET_ACCESS_KEY} |
| 49 | + endpoint = https://${R2_ACCOUNT_ID}.r2.cloudflarestorage.com |
| 50 | + acl = private |
| 51 | + EOF |
| 52 | + |
44 | 53 | - name: Upload docs to Cloudflare R2 |
| 54 | + env: |
| 55 | + R2_BUCKET_NAME: ${{ secrets.R2_BUCKET_NAME }} |
45 | 56 | run: | |
46 | | - aws s3 sync docs/_build/html s3://${{ vars.R2_BUCKET_NAME }} \ |
47 | | - --endpoint-url https://${{ vars.R2_ACCOUNT_ID }}.r2.cloudflarestorage.com \ |
48 | | - --delete |
| 57 | + rclone sync docs/_build r2:${R2_BUCKET_NAME} --progress |
0 commit comments