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"