From de0169507dbfe7468acb925e1da3a24891278870 Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Mon, 27 Jul 2026 16:16:29 +0700 Subject: [PATCH 1/2] ci: smoke test NFT image processing --- .github/workflows/dependency-build.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/dependency-build.yml b/.github/workflows/dependency-build.yml index d9c793e8274c..c0834422b901 100644 --- a/.github/workflows/dependency-build.yml +++ b/.github/workflows/dependency-build.yml @@ -94,6 +94,24 @@ jobs: mix deps.compile --skip-umbrella-children mix compile + - name: Smoke test NFT image processing + run: | + mix run --no-start -e ' + source = + "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=" + |> Base.decode64!() + + {:ok, image} = Image.from_binary(source, pages: -1) + 1 = Image.width(image) + 1 = Image.height(image) + 1 = Image.pages(image) + {:ok, thumbnail} = Image.thumbnail(image, "1x1", []) + {:ok, encoded} = NFTMediaHandler.image_to_binary(thumbnail, "smoke.png", ".png") + {:ok, reloaded} = Image.from_binary(encoded, pages: -1) + 1 = Image.width(reloaded) + 1 = Image.height(reloaded) + ' + production-docker: name: Build published production Docker image needs: changes From 919fe234273529b186ef4e61eba1796b01e220a0 Mon Sep 17 00:00:00 2001 From: JOY <5027251+JOY@users.noreply.github.com> Date: Mon, 27 Jul 2026 16:21:24 +0700 Subject: [PATCH 2/2] ci: exercise NFT resizer pipeline --- .github/workflows/dependency-build.yml | 33 ++++++++++++++++++-------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/.github/workflows/dependency-build.yml b/.github/workflows/dependency-build.yml index c0834422b901..600019bf573f 100644 --- a/.github/workflows/dependency-build.yml +++ b/.github/workflows/dependency-build.yml @@ -97,19 +97,32 @@ jobs: - name: Smoke test NFT image processing run: | mix run --no-start -e ' - source = - "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=" - |> Base.decode64!() + source = """ + + + + """ {:ok, image} = Image.from_binary(source, pages: -1) - 1 = Image.width(image) - 1 = Image.height(image) + 600 = Image.width(image) + 600 = Image.height(image) 1 = Image.pages(image) - {:ok, thumbnail} = Image.thumbnail(image, "1x1", []) - {:ok, encoded} = NFTMediaHandler.image_to_binary(thumbnail, "smoke.png", ".png") - {:ok, reloaded} = Image.from_binary(encoded, pages: -1) - 1 = Image.width(reloaded) - 1 = Image.height(reloaded) + + thumbnails = + NFTMediaHandler.Image.Resizer.resize( + image, + "https://example.com/nft/smoke.png", + ".png" + ) + + [60, 250, 500] = Enum.map(thumbnails, &elem(&1, 0)) + + Enum.each(thumbnails, fn {size, encoded, file_name} -> + true = String.ends_with?(file_name, "_#{size}x#{size}.png") + {:ok, reloaded} = Image.from_binary(encoded, pages: -1) + ^size = Image.width(reloaded) + ^size = Image.height(reloaded) + end) ' production-docker: