diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index d7786c9..fd5152b 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -9,40 +9,49 @@ jobs: docs: name: Build and Deploy Docs runs-on: ubuntu-latest - + steps: - name: Checkout code uses: actions/checkout@v4 - + - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.12" - + - name: Install dependencies run: | pip install uv uv sync - + - name: Build docs run: | make build-docs - - # (Optional but recommended) Ensure AWS CLI is available - - name: Install AWS CLI + + - name: Setup rclone run: | - sudo apt-get update - sudo apt-get install -y awscli - - - name: Configure AWS CLI for Cloudflare R2 - uses: aws-actions/configure-aws-credentials@v4 - with: - aws-access-key-id: ${{ secrets.R2_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.R2_SECRET_ACCESS_KEY }} - aws-region: auto - + curl https://rclone.org/install.sh | sudo bash + + - name: Configure rclone for Cloudflare R2 + env: + R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} + R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }} + R2_BUCKET_NAME: ${{ secrets.R2_BUCKET_NAME }} + run: | + mkdir -p ~/.config/rclone + cat << EOF > ~/.config/rclone/rclone.conf + [r2] + type = s3 + provider = Cloudflare + access_key_id = ${R2_ACCESS_KEY_ID} + secret_access_key = ${R2_SECRET_ACCESS_KEY} + endpoint = https://${R2_ACCOUNT_ID}.r2.cloudflarestorage.com + acl = private + EOF + - name: Upload docs to Cloudflare R2 + env: + R2_BUCKET_NAME: ${{ secrets.R2_BUCKET_NAME }} run: | - aws s3 sync docs/_build/html s3://${{ vars.R2_BUCKET_NAME }} \ - --endpoint-url https://${{ vars.R2_ACCOUNT_ID }}.r2.cloudflarestorage.com \ - --delete + rclone sync docs/_build r2:${R2_BUCKET_NAME} --progress