diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18b0c73..34e1054 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,12 +18,16 @@ env: # Exact Rust source that defines the C ABI consumed by this SDK. Keep this # pinned so an unrelated Rust main-branch change cannot break C++ CI. VGI_RPC_IROH_RUST_REV: 9e7dfb59686682be0ff4a46183988e2724416393 - VCPKG_BINARY_SOURCES: "clear;x-aws,s3://query-farm-duckdb-vcpkg/,readwrite" - AWS_ACCESS_KEY_ID: ${{ secrets.VCPKG_CACHING_AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.VCPKG_CACHING_AWS_SECRET_ACCESS_KEY }} - AWS_ENDPOINT_URL: ${{ secrets.VCPKG_CACHING_AWS_ENDPOINT_URL }} - AWS_DEFAULT_REGION: ${{ secrets.VCPKG_CACHING_AWS_DEFAULT_REGION }} + # Use Cloudflare's S3-compatible R2 endpoint directly because vcpkg binary + # archives can exceed the Worker request-size limit. Fork PRs do not receive + # secrets, so disable the remote cache instead of issuing broken AWS calls. + VCPKG_BINARY_SOURCES: "${{ secrets.R2_ACCESS_KEY_ID != '' && secrets.R2_SECRET_KEY_ID != '' && secrets.R2_ENDPOINT != '' && 'clear;x-aws,s3://query-farm-duckdb-vcpkg/,readwrite' || 'clear' }}" + AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_KEY_ID }} + AWS_ENDPOINT_URL: ${{ secrets.R2_ENDPOINT }} + AWS_DEFAULT_REGION: auto AWS_REQUEST_CHECKSUM_CALCULATION: when_required + AWS_RESPONSE_CHECKSUM_VALIDATION: when_required jobs: # Cheap and fast, and it fails the whole run before anything is built: a diff --git a/.github/workflows/cloud-storage.yml b/.github/workflows/cloud-storage.yml index 5fccd1f..971ef7e 100644 --- a/.github/workflows/cloud-storage.yml +++ b/.github/workflows/cloud-storage.yml @@ -37,12 +37,16 @@ concurrency: cancel-in-progress: true env: - VCPKG_BINARY_SOURCES: "clear;x-aws,s3://query-farm-duckdb-vcpkg/,readwrite" - AWS_ACCESS_KEY_ID: ${{ secrets.VCPKG_CACHING_AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.VCPKG_CACHING_AWS_SECRET_ACCESS_KEY }} - AWS_ENDPOINT_URL: ${{ secrets.VCPKG_CACHING_AWS_ENDPOINT_URL }} - AWS_DEFAULT_REGION: ${{ secrets.VCPKG_CACHING_AWS_DEFAULT_REGION }} + # Use Cloudflare's S3-compatible R2 endpoint directly because vcpkg binary + # archives can exceed the Worker request-size limit. Fork PRs do not receive + # secrets, so disable the remote cache instead of issuing broken AWS calls. + VCPKG_BINARY_SOURCES: "${{ secrets.R2_ACCESS_KEY_ID != '' && secrets.R2_SECRET_KEY_ID != '' && secrets.R2_ENDPOINT != '' && 'clear;x-aws,s3://query-farm-duckdb-vcpkg/,readwrite' || 'clear' }}" + AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_KEY_ID }} + AWS_ENDPOINT_URL: ${{ secrets.R2_ENDPOINT }} + AWS_DEFAULT_REGION: auto AWS_REQUEST_CHECKSUM_CALCULATION: when_required + AWS_RESPONSE_CHECKSUM_VALIDATION: when_required jobs: cloud: diff --git a/.github/workflows/sanitizer.yml b/.github/workflows/sanitizer.yml index 69cce45..a2c5e82 100644 --- a/.github/workflows/sanitizer.yml +++ b/.github/workflows/sanitizer.yml @@ -11,12 +11,16 @@ on: workflow_dispatch: env: - VCPKG_BINARY_SOURCES: "clear;x-aws,s3://query-farm-duckdb-vcpkg/,readwrite" - AWS_ACCESS_KEY_ID: ${{ secrets.VCPKG_CACHING_AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.VCPKG_CACHING_AWS_SECRET_ACCESS_KEY }} - AWS_ENDPOINT_URL: ${{ secrets.VCPKG_CACHING_AWS_ENDPOINT_URL }} - AWS_DEFAULT_REGION: ${{ secrets.VCPKG_CACHING_AWS_DEFAULT_REGION }} + # Use Cloudflare's S3-compatible R2 endpoint directly because vcpkg binary + # archives can exceed the Worker request-size limit. Fork PRs do not receive + # secrets, so disable the remote cache instead of issuing broken AWS calls. + VCPKG_BINARY_SOURCES: "${{ secrets.R2_ACCESS_KEY_ID != '' && secrets.R2_SECRET_KEY_ID != '' && secrets.R2_ENDPOINT != '' && 'clear;x-aws,s3://query-farm-duckdb-vcpkg/,readwrite' || 'clear' }}" + AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_KEY_ID }} + AWS_ENDPOINT_URL: ${{ secrets.R2_ENDPOINT }} + AWS_DEFAULT_REGION: auto AWS_REQUEST_CHECKSUM_CALCULATION: when_required + AWS_RESPONSE_CHECKSUM_VALIDATION: when_required jobs: asan-ubsan: