From 52610c23cc2399de7cdb3324c611fdfc6a259d75 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 7 Jul 2026 19:17:11 +0000 Subject: [PATCH] Add image size comparison steps to test workflow Pull the currently published main image for each PHP version, report its size alongside the freshly built image's size, and print the diff between them so size regressions are visible in CI output. --- .github/workflows/test.yml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f6f696a..b238290 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,6 +9,10 @@ on: - main - master +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + jobs: test: name: Run tests @@ -46,6 +50,39 @@ jobs: env: PHP_VERSION: '8.6.0alpha1' + - name: Pull main image for size comparison + id: pull_main + continue-on-error: true + run: docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ matrix.php-version }}-multi + + - name: Output image size from main + if: steps.pull_main.outcome == 'success' + id: main_size + run: | + size=$(docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ matrix.php-version }}-multi --format='{{ .Size }}') + echo "Main image size: $(numfmt --to=iec --suffix=B "$size")" + echo "size=$size" >> "$GITHUB_OUTPUT" + + - name: Output image size for build + id: build_size + run: | + size=$(docker image inspect php-base --format='{{ .Size }}') + echo "Build image size: $(numfmt --to=iec --suffix=B "$size")" + echo "size=$size" >> "$GITHUB_OUTPUT" + + - name: Output image size diff + if: steps.pull_main.outcome == 'success' + run: | + main_size=${{ steps.main_size.outputs.size }} + build_size=${{ steps.build_size.outputs.size }} + diff=$((build_size - main_size)) + if [ "$diff" -gt 0 ]; then + sign="+" + else + sign="" + fi + echo "Image size diff (build vs main): ${sign}$(numfmt --to=iec --suffix=B -- "$diff")" + - name: Output modules run: docker run php-base php -m