From a2b024f0ab2f4c9de560410b0fff4240b7ce31c2 Mon Sep 17 00:00:00 2001 From: Davide Melfi Date: Tue, 20 Oct 2026 09:57:54 +0000 Subject: [PATCH] ci(ric): cut anonymous public.ecr.aws pulls in PR checks The RIC PR checks pull their images anonymously from public.ecr.aws and keep hitting its 429 rate limit. Cut the pulls and the burst without losing coverage: - integration-test-matrix: max-parallel 4 instead of the random jitter step. - alpine buildspec: 3.15 only (3.13 and 3.14 are EOL, same musl ABI). - amazoncorretto buildspec: Java 8 only; smoke already runs Corretto 11. - pr-: drop `test`; the required build check already runs the unit tests. --- .github/workflows/runtime-interface-client_pr.yml | 12 +++--------- aws-lambda-java-runtime-interface-client/Makefile | 9 +++++++-- .../integration/codebuild/buildspec.os.alpine.yml | 2 -- .../codebuild/buildspec.os.amazoncorretto.yml | 2 +- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/.github/workflows/runtime-interface-client_pr.yml b/.github/workflows/runtime-interface-client_pr.yml index 98618396..885b952c 100644 --- a/.github/workflows/runtime-interface-client_pr.yml +++ b/.github/workflows/runtime-interface-client_pr.yml @@ -111,6 +111,9 @@ jobs: strategy: # Run every OS/arch combination to completion so one failure doesn't mask the others. fail-fast: false + # Every shard pulls its images anonymously from public.ecr.aws, and shards + # started together trip its rate limit (429), so cap how many run at once. + max-parallel: 4 matrix: buildspec: - buildspec.os.alpine.yml @@ -136,15 +139,6 @@ jobs: platform: linux/arm64/v8 name: "integration-test (${{ matrix.buildspec }} / ${{ matrix.arch.label }})" steps: - - name: Jitter start (stagger matrix shards to spare public.ecr.aws rate limit) - # Every shard is scheduled within milliseconds of the others and hits - # public.ecr.aws / docker hub inside the same rate-limit window, so they - # collectively trip the throttle. - run: | - jitter=$((RANDOM % 61)) - echo "Sleeping ${jitter}s to stagger this shard" - sleep "${jitter}" - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - name: Set up Docker Buildx diff --git a/aws-lambda-java-runtime-interface-client/Makefile b/aws-lambda-java-runtime-interface-client/Makefile index 770671c0..6d1a7762 100644 --- a/aws-lambda-java-runtime-interface-client/Makefile +++ b/aws-lambda-java-runtime-interface-client/Makefile @@ -37,6 +37,9 @@ setup-codebuild-agent: .PHONY: test-smoke test-smoke: test-smoke-x86_64 test-smoke-aarch64 +# amazoncorretto 11 is left out of the CI integration matrix +# (buildspec.os.amazoncorretto.yml) because smoke already covers it. Changing it +# here changes integration coverage too. .PHONY: test-smoke-x86_64 test-smoke-x86_64: setup-codebuild-agent CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.alpine.yml alpine 3.15 corretto11 linux/amd64 @@ -64,11 +67,13 @@ dev: test pr: test test-smoke # Per-architecture PR checks so CI can run each on a native runner (no QEMU). +# No `test` here: the required `build` check already runs the unit tests +# (build-), so CI would only run them twice. .PHONY: pr-x86_64 -pr-x86_64: test test-smoke-x86_64 +pr-x86_64: test-smoke-x86_64 .PHONY: pr-aarch64 -pr-aarch64: test test-smoke-aarch64 +pr-aarch64: test-smoke-aarch64 .PHONY: build build: build-x86_64 build-aarch64 diff --git a/aws-lambda-java-runtime-interface-client/test/integration/codebuild/buildspec.os.alpine.yml b/aws-lambda-java-runtime-interface-client/test/integration/codebuild/buildspec.os.alpine.yml index 65a9da50..595de79f 100644 --- a/aws-lambda-java-runtime-interface-client/test/integration/codebuild/buildspec.os.alpine.yml +++ b/aws-lambda-java-runtime-interface-client/test/integration/codebuild/buildspec.os.alpine.yml @@ -16,8 +16,6 @@ batch: env: variables: DISTRO_VERSION: - - "3.13" - - "3.14" - "3.15" RUNTIME_VERSION: - "corretto11" diff --git a/aws-lambda-java-runtime-interface-client/test/integration/codebuild/buildspec.os.amazoncorretto.yml b/aws-lambda-java-runtime-interface-client/test/integration/codebuild/buildspec.os.amazoncorretto.yml index c578235f..efa99cec 100644 --- a/aws-lambda-java-runtime-interface-client/test/integration/codebuild/buildspec.os.amazoncorretto.yml +++ b/aws-lambda-java-runtime-interface-client/test/integration/codebuild/buildspec.os.amazoncorretto.yml @@ -18,8 +18,8 @@ batch: DISTRO_VERSION: - "amazoncorretto" RUNTIME_VERSION: + # 11 is covered by the smoke tests (Makefile, test-smoke-). - "8" - - "11" PLATFORM: - "linux/amd64" - "linux/arm64/v8"