From 5a0aeafa61941ca5c6dd4553bfd8444102e4ab5a Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 05:31:43 +0100 Subject: [PATCH 01/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 9aee0754..777e2232 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -63,7 +63,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [windows-latest, ubuntu-latest, macOS-latest] + os: [windows-latest] fail-fast: false steps: - name: (Windows) Install dependencies From fd9096dc0eb57fb02e87afe8c18e2364d9754bba Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 05:42:28 +0100 Subject: [PATCH 02/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 777e2232..069976ea 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -1,6 +1,7 @@ name: Build and deploy Aseprite on: + workflow_dispatch schedule: - cron: '0 0 * * *' push: From a0abf718d6bf1bf636a02b89b5274c7b05078cdf Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 05:43:32 +0100 Subject: [PATCH 03/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 069976ea..777e2232 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -1,7 +1,6 @@ name: Build and deploy Aseprite on: - workflow_dispatch schedule: - cron: '0 0 * * *' push: From 5ea15b2c4b6e525a34b97c866e0b189bee9eb493 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 05:46:51 +0100 Subject: [PATCH 04/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 154 ++++++++++---------- 1 file changed, 76 insertions(+), 78 deletions(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 777e2232..f450b848 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -1,6 +1,7 @@ name: Build and deploy Aseprite on: + workflow_dispatch: schedule: - cron: '0 0 * * *' push: @@ -9,7 +10,7 @@ on: env: BUILD_TYPE: Release - + jobs: check-version: name: Check latest Aseprite release @@ -18,118 +19,115 @@ jobs: download_url: ${{ steps.version_info.outputs.download_url }} latest_tag: ${{ steps.version_info.outputs.latest_tag }} should_build: ${{ steps.should_build.outputs.should_build }} - upload_url: ${{ steps.create_release.outputs.upload_url }} steps: - - name: Get latest version info - id: version_info - run: | - data=$(curl -sL https://api.github.com/repos/aseprite/aseprite/releases/latest) - LATEST_TAG=$(echo "${data}" | jq -r '.tag_name') - DOWNLOAD_URL=$(echo "${data}" | jq -r '.assets[].browser_download_url') - VERSION_INFO=$(echo "${data}" | jq -r '.body') - - echo "${LATEST_TAG}" > ${LATEST_TAG}.txt - echo "::set-output name=latest_tag::${LATEST_TAG}" - echo "::set-output name=download_url::${DOWNLOAD_URL}" - echo "::set-output name=version_info::${VERSION_INFO}" - - name: Load version from cache - id: version_check - uses: actions/cache@v2 - with: - path: ${{ steps.version_info.outputs.latest_tag }}.txt - key: cached_version - - name: Should we start new build? - id: should_build - if: steps.version_check.outputs.cache-hit != 'true' - run: echo "::set-output name=should_build::true" - - name: Create Release - id: create_release - if: steps.should_build.outputs.should_build - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ steps.version_info.outputs.latest_tag }} - release_name: Release Aseprite ${{ steps.version_info.outputs.latest_tag }} - body: | - ${{ steps.version_info.outputs.version_info }} - draft: true - prerelease: false - + - name: Get latest version info + id: version_info + run: | + data=$(curl -sL https://api.github.com/repos/aseprite/aseprite/releases/latest) + LATEST_TAG=$(echo "${data}" | jq -r '.tag_name') + DOWNLOAD_URL=$(echo "${data}" | jq -r '.assets[0].browser_download_url') + VERSION_INFO=$(echo "${data}" | jq -r '.body') + + echo "${LATEST_TAG}" > "${LATEST_TAG}.txt" + + echo "latest_tag=${LATEST_TAG}" >> "$GITHUB_OUTPUT" + echo "download_url=${DOWNLOAD_URL}" >> "$GITHUB_OUTPUT" + echo "version_info<> "$GITHUB_OUTPUT" + echo "${VERSION_INFO}" >> "$GITHUB_OUTPUT" + echo "EOF" >> "$GITHUB_OUTPUT" + + - name: Load version from cache + id: version_check + uses: actions/cache@v4 + with: + path: ${{ steps.version_info.outputs.latest_tag }}.txt + key: cached_version-${{ steps.version_info.outputs.latest_tag }} + + - name: Should we start new build? + id: should_build + if: steps.version_check.outputs.cache-hit != 'true' + run: echo "should_build=true" >> "$GITHUB_OUTPUT" + build-aseprite: name: Build Aseprite needs: check-version - if: ${{ needs.check-version.outputs.should_build }} + if: ${{ needs.check-version.outputs.should_build == 'true' }} runs-on: ${{ matrix.os }} + strategy: - matrix: - os: [windows-latest] - fail-fast: false + matrix: + os: [windows-latest] + fail-fast: false + steps: - - name: (Windows) Install dependencies - if: matrix.os == 'windows-latest' + - name: Install Ninja uses: seanmiddleditch/gha-setup-ninja@v1 - - name: (Ubuntu) Install dependencies - if: matrix.os == 'ubuntu-latest' - run: sudo apt install -y cmake ninja-build libxcursor-dev libxi-dev libgl1-mesa-dev - - name: (macOS) Install dependencies - if: matrix.os == 'macOS-latest' - run: brew install ninja p7zip + - name: Get Skia from cache id: skia-cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: skia key: skia-${{ matrix.os }}-cache + - name: Download Skia if not in cache if: steps.skia-cache.outputs.cache-hit != 'true' + shell: bash run: | curl -o Skia-${{ runner.os }}-Release-X64.zip -L https://github.com/aseprite/skia/releases/download/m81-b607b32047/Skia-${{ runner.os }}-Release-X64.zip unzip Skia-${{ runner.os }}-Release-X64.zip -d skia + - name: Download Aseprite release + shell: bash run: | - curl -o Aseprite-source.zip -L ${{ needs.check-version.outputs.download_url }} + curl -o Aseprite-source.zip -L "${{ needs.check-version.outputs.download_url }}" unzip Aseprite-source.zip -d aseprite mkdir -p aseprite/build - - name: (Windows) Set architecture for the produced binary - if: matrix.os == 'windows-latest' + + - name: Set architecture for produced binary shell: cmd - run: call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=x64 - - name: (Windows) Setting Visual Studio build environment variables and paths - if: matrix.os == 'windows-latest' + run: call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=x64 + + - name: Setup Visual Studio environment uses: seanmiddleditch/gha-setup-vsdevenv@v1 - - name: (Windows) Run CMake - if: matrix.os == 'windows-latest' + + - name: Run CMake working-directory: aseprite/build shell: cmd - run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_IGNORE_PATH='C:/ProgramData/chocolatey/bin/;C:/Strawberry/c/bin/' -DLAF_BACKEND=skia -DSKIA_DIR=../../skia -DSKIA_LIBRARY_DIR=../../skia/out/Release-x64 -G Ninja .. - - name: (Ubuntu) Run CMake - if: matrix.os == 'ubuntu-latest' - working-directory: aseprite/build - run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DLAF_BACKEND=skia -DSKIA_DIR=../../skia -DSKIA_LIBRARY_DIR=../../skia/out/Release-x64 -G Ninja .. - - name: (macOS) Run CMake - if: matrix.os == 'macOS-latest' - working-directory: aseprite/build - run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -DLAF_BACKEND=skia -DSKIA_DIR=../../skia -DSKIA_LIBRARY_DIR=../../skia/out/Release-x64 -G Ninja .. + run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_IGNORE_PATH="C:/ProgramData/chocolatey/bin/;C:/Strawberry/c/bin/" -DLAF_BACKEND=skia -DSKIA_DIR=../../skia -DSKIA_LIBRARY_DIR=../../skia/out/Release-x64 -G Ninja .. + - name: Run Ninja working-directory: aseprite/build run: ninja aseprite + - name: Clean up build working-directory: aseprite/build/bin shell: bash run: rm -f gen modp_b64_gen gen.exe gen.exe.manifest modp_b64_gen.exe modp_b64_gen.exe.manifest - - name: (Windows) Make portable zip + + - name: Make portable zip working-directory: aseprite/build/bin + shell: bash run: echo '# This file is here so Aseprite behaves as a portable program' > aseprite.ini - - name: Create release + + - name: Create release zip working-directory: aseprite/build/bin - run: 7z -tzip a Aseprite-${{ needs.check-version.outputs.latest_tag }}-${{ runner.os }}.zip * - - name: Upload release - uses: actions/upload-release-asset@v1 + run: 7z a Aseprite-${{ needs.check-version.outputs.latest_tag }}-${{ runner.os }}.zip * + + - name: Upload workflow artifact + uses: actions/upload-artifact@v4 + with: + name: Aseprite-${{ needs.check-version.outputs.latest_tag }}-${{ runner.os }} + path: aseprite/build/bin/Aseprite-${{ needs.check-version.outputs.latest_tag }}-${{ runner.os }}.zip + + - name: Upload GitHub draft release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ needs.check-version.outputs.latest_tag }} + name: Release Aseprite ${{ needs.check-version.outputs.latest_tag }} + body: ${{ steps.version_info.outputs.version_info }} + draft: true + prerelease: false + files: aseprite/build/bin/Aseprite-${{ needs.check-version.outputs.latest_tag }}-${{ runner.os }}.zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.check-version.outputs.upload_url }} - asset_path: aseprite/build/bin/Aseprite-${{ needs.check-version.outputs.latest_tag }}-${{ runner.os }}.zip - asset_name: Aseprite-${{ needs.check-version.outputs.latest_tag }}-${{ runner.os }}.zip - asset_content_type: application/zip From 8d06b54d057be448eaa9a56c12ab9704957f3b8f Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 05:49:19 +0100 Subject: [PATCH 05/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index f450b848..05d60ab1 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -10,6 +10,7 @@ on: env: BUILD_TYPE: Release + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: check-version: From aeb97087f6bb1a5f93fac75f733aa20b3b26bbe9 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 05:50:13 +0100 Subject: [PATCH 06/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 05d60ab1..cbbcb548 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -10,7 +10,7 @@ on: env: BUILD_TYPE: Release - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" jobs: check-version: From a765dd80f3ac889bafa690396385fb4151a4c3a6 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 05:52:07 +0100 Subject: [PATCH 07/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index cbbcb548..23f3ecfb 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -10,7 +10,7 @@ on: env: BUILD_TYPE: Release - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" jobs: check-version: From 6984f43d6083c7277dfcfd362183b883e75dc934 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 05:55:29 +0100 Subject: [PATCH 08/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 23f3ecfb..9b4aa995 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -46,8 +46,12 @@ jobs: - name: Should we start new build? id: should_build - if: steps.version_check.outputs.cache-hit != 'true' - run: echo "should_build=true" >> "$GITHUB_OUTPUT" + run: | + if [ "${{ steps.version_check.outputs.cache-hit }}" == "true" ]; then + echo "should_build=false" >> "$GITHUB_OUTPUT" + else + echo "should_build=true" >> "$GITHUB_OUTPUT" + fi build-aseprite: name: Build Aseprite From de17f02b4f8f632f096277efaa61237147566fb0 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 06:01:36 +0100 Subject: [PATCH 09/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 9b4aa995..68d580a9 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -66,7 +66,7 @@ jobs: steps: - name: Install Ninja - uses: seanmiddleditch/gha-setup-ninja@v1 + run: choco install ninja - name: Get Skia from cache id: skia-cache From 86998a732834c70b0f015eab6c4e51e4874bd4ee Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 06:05:07 +0100 Subject: [PATCH 10/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 68d580a9..d5472e85 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -2,6 +2,11 @@ name: Build and deploy Aseprite on: workflow_dispatch: + inputs: + force_build: + description: 'Force build even if version is cached' + required: false + default: 'false' schedule: - cron: '0 0 * * *' push: @@ -47,7 +52,7 @@ jobs: - name: Should we start new build? id: should_build run: | - if [ "${{ steps.version_check.outputs.cache-hit }}" == "true" ]; then + if [ "${{ steps.version_check.outputs.cache-hit }}" == "true" ] && [ "${{ github.event.inputs.force_build }}" != "true" ]; then echo "should_build=false" >> "$GITHUB_OUTPUT" else echo "should_build=true" >> "$GITHUB_OUTPUT" @@ -89,12 +94,10 @@ jobs: unzip Aseprite-source.zip -d aseprite mkdir -p aseprite/build - - name: Set architecture for produced binary - shell: cmd - run: call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=x64 - - name: Setup Visual Studio environment - uses: seanmiddleditch/gha-setup-vsdevenv@v1 + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: x64 - name: Run CMake working-directory: aseprite/build From 2ab3308a8170ea5f91220ae3e7e8c2d43f9fb86d Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 06:11:19 +0100 Subject: [PATCH 11/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index d5472e85..117aafb0 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -84,7 +84,7 @@ jobs: if: steps.skia-cache.outputs.cache-hit != 'true' shell: bash run: | - curl -o Skia-${{ runner.os }}-Release-X64.zip -L https://github.com/aseprite/skia/releases/download/m81-b607b32047/Skia-${{ runner.os }}-Release-X64.zip + curl -o Skia-${{ runner.os }}-Release-X64.zip -L https://github.com/aseprite/skia/releases/download/m102-861e4743af/Skia-${{ runner.os }}-Release-X64.zip unzip Skia-${{ runner.os }}-Release-X64.zip -d skia - name: Download Aseprite release From b177ac7522dcc63f0ece7941437622d8f28edccc Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 06:17:36 +0100 Subject: [PATCH 12/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 117aafb0..5aece90d 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -78,13 +78,13 @@ jobs: uses: actions/cache@v4 with: path: skia - key: skia-${{ matrix.os }}-cache + key: skia-${{ matrix.os }}-m124-cache - name: Download Skia if not in cache if: steps.skia-cache.outputs.cache-hit != 'true' shell: bash run: | - curl -o Skia-${{ runner.os }}-Release-X64.zip -L https://github.com/aseprite/skia/releases/download/m102-861e4743af/Skia-${{ runner.os }}-Release-X64.zip + curl -o Skia-${{ runner.os }}-Release-X64.zip -L https://github.com/aseprite/skia/releases/download/m124-08a5439a6b/Skia-${{ runner.os }}-Release-X64.zip unzip Skia-${{ runner.os }}-Release-X64.zip -d skia - name: Download Aseprite release From 679d60c4f116554b42b8144d89262031d61b2bee Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 06:23:05 +0100 Subject: [PATCH 13/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 5aece90d..f6245945 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -99,10 +99,13 @@ jobs: with: arch: x64 + - name: Install libjpeg-turbo + run: choco install libjpeg-turbo + - name: Run CMake working-directory: aseprite/build shell: cmd - run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_IGNORE_PATH="C:/ProgramData/chocolatey/bin/;C:/Strawberry/c/bin/" -DLAF_BACKEND=skia -DSKIA_DIR=../../skia -DSKIA_LIBRARY_DIR=../../skia/out/Release-x64 -G Ninja .. + run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_IGNORE_PATH="C:/ProgramData/chocolatey/bin/;C:/Strawberry/c/bin/" -DLAF_BACKEND=skia -DSKIA_DIR=../../skia -DSKIA_LIBRARY_DIR=../../skia/out/Release-x64 -DSKIA_LIBRARY=../../skia/out/Release-x64/skia.lib -DUSE_SHARED_JPEGTURBO=OFF -G Ninja .. - name: Run Ninja working-directory: aseprite/build From 32eb7d53408c853ace299a57ba0ba70109f1da06 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 06:28:10 +0100 Subject: [PATCH 14/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index f6245945..8de80277 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -86,6 +86,10 @@ jobs: run: | curl -o Skia-${{ runner.os }}-Release-X64.zip -L https://github.com/aseprite/skia/releases/download/m124-08a5439a6b/Skia-${{ runner.os }}-Release-X64.zip unzip Skia-${{ runner.os }}-Release-X64.zip -d skia + mkdir -p skia/third_party/externals + curl -L https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/heads/main.zip -o libjpeg-turbo.zip + unzip libjpeg-turbo.zip -d libjpeg-turbo-src + mv libjpeg-turbo-src/libjpeg-turbo-main skia/third_party/externals/libjpeg-turbo - name: Download Aseprite release shell: bash @@ -99,13 +103,10 @@ jobs: with: arch: x64 - - name: Install libjpeg-turbo - run: choco install libjpeg-turbo - - name: Run CMake working-directory: aseprite/build shell: cmd - run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_IGNORE_PATH="C:/ProgramData/chocolatey/bin/;C:/Strawberry/c/bin/" -DLAF_BACKEND=skia -DSKIA_DIR=../../skia -DSKIA_LIBRARY_DIR=../../skia/out/Release-x64 -DSKIA_LIBRARY=../../skia/out/Release-x64/skia.lib -DUSE_SHARED_JPEGTURBO=OFF -G Ninja .. + run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_IGNORE_PATH="C:/ProgramData/chocolatey/bin/;C:/Strawberry/c/bin/" -DLAF_BACKEND=skia -DSKIA_DIR=../../skia -DSKIA_LIBRARY_DIR=../../skia/out/Release-x64 -DSKIA_LIBRARY=../../skia/out/Release-x64/skia.lib -G Ninja .. - name: Run Ninja working-directory: aseprite/build From 84b53c352b22b2c85f031ea871d74f07e4799ae5 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 06:37:51 +0100 Subject: [PATCH 15/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 8de80277..d076bf51 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -78,7 +78,7 @@ jobs: uses: actions/cache@v4 with: path: skia - key: skia-${{ matrix.os }}-m124-cache + key: skia-${{ matrix.os }}-m124-libjpeg-cache - name: Download Skia if not in cache if: steps.skia-cache.outputs.cache-hit != 'true' @@ -91,6 +91,14 @@ jobs: unzip libjpeg-turbo.zip -d libjpeg-turbo-src mv libjpeg-turbo-src/libjpeg-turbo-main skia/third_party/externals/libjpeg-turbo + - name: Verify Skia structure + shell: bash + run: | + echo "--- skia/third_party/externals ---" + ls skia/third_party/externals || echo "directory not found" + echo "--- libjpeg-turbo contents ---" + ls skia/third_party/externals/libjpeg-turbo || echo "directory not found" + - name: Download Aseprite release shell: bash run: | From f94e57659e1e2b83843df137fe03a60b9b5b2c36 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 06:39:58 +0100 Subject: [PATCH 16/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index d076bf51..1175ee78 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -78,7 +78,7 @@ jobs: uses: actions/cache@v4 with: path: skia - key: skia-${{ matrix.os }}-m124-libjpeg-cache + key: skia-${{ matrix.os }}-m124-libjpeg-v2-cache - name: Download Skia if not in cache if: steps.skia-cache.outputs.cache-hit != 'true' @@ -89,6 +89,7 @@ jobs: mkdir -p skia/third_party/externals curl -L https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/heads/main.zip -o libjpeg-turbo.zip unzip libjpeg-turbo.zip -d libjpeg-turbo-src + rm -rf skia/third_party/externals/libjpeg-turbo mv libjpeg-turbo-src/libjpeg-turbo-main skia/third_party/externals/libjpeg-turbo - name: Verify Skia structure From 1989c04a073016da88d0abd40e5e867173ae7b8a Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 06:45:52 +0100 Subject: [PATCH 17/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 1175ee78..f9db10c1 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -115,7 +115,7 @@ jobs: - name: Run CMake working-directory: aseprite/build shell: cmd - run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_IGNORE_PATH="C:/ProgramData/chocolatey/bin/;C:/Strawberry/c/bin/" -DLAF_BACKEND=skia -DSKIA_DIR=../../skia -DSKIA_LIBRARY_DIR=../../skia/out/Release-x64 -DSKIA_LIBRARY=../../skia/out/Release-x64/skia.lib -G Ninja .. + run: cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_IGNORE_PATH="C:/ProgramData/chocolatey/bin/;C:/Strawberry/c/bin/" -DLAF_BACKEND=skia -DSKIA_DIR=${{ github.workspace }}/skia -DSKIA_LIBRARY_DIR=${{ github.workspace }}/skia/out/Release-x64 -DSKIA_LIBRARY=${{ github.workspace }}/skia/out/Release-x64/skia.lib -G Ninja .. - name: Run Ninja working-directory: aseprite/build From e3601a7a2d91849529dc55dc61278ff24160d35a Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 06:55:34 +0100 Subject: [PATCH 18/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index f9db10c1..bb92aa4b 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -92,6 +92,20 @@ jobs: rm -rf skia/third_party/externals/libjpeg-turbo mv libjpeg-turbo-src/libjpeg-turbo-main skia/third_party/externals/libjpeg-turbo + - name: Setup Visual Studio environment + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: x64 + + - name: Build libjpeg-turbo + shell: cmd + run: | + mkdir libjpeg-turbo-build + cd libjpeg-turbo-build + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/skia/third_party/externals/libjpeg-turbo" -G Ninja "${{ github.workspace }}/skia/third_party/externals/libjpeg-turbo" + ninja + ninja install + - name: Verify Skia structure shell: bash run: | @@ -107,11 +121,6 @@ jobs: unzip Aseprite-source.zip -d aseprite mkdir -p aseprite/build - - name: Setup Visual Studio environment - uses: ilammy/msvc-dev-cmd@v1 - with: - arch: x64 - - name: Run CMake working-directory: aseprite/build shell: cmd From 732f020574e224c63192b232a36ae441017f0f77 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 06:58:46 +0100 Subject: [PATCH 19/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index bb92aa4b..af773a53 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -78,7 +78,7 @@ jobs: uses: actions/cache@v4 with: path: skia - key: skia-${{ matrix.os }}-m124-libjpeg-v2-cache + key: skia-${{ matrix.os }}-m124-libjpeg-v3-cache - name: Download Skia if not in cache if: steps.skia-cache.outputs.cache-hit != 'true' @@ -87,10 +87,10 @@ jobs: curl -o Skia-${{ runner.os }}-Release-X64.zip -L https://github.com/aseprite/skia/releases/download/m124-08a5439a6b/Skia-${{ runner.os }}-Release-X64.zip unzip Skia-${{ runner.os }}-Release-X64.zip -d skia mkdir -p skia/third_party/externals - curl -L https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/heads/main.zip -o libjpeg-turbo.zip + curl -L --output libjpeg-turbo.zip https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/3.0.1.zip unzip libjpeg-turbo.zip -d libjpeg-turbo-src rm -rf skia/third_party/externals/libjpeg-turbo - mv libjpeg-turbo-src/libjpeg-turbo-main skia/third_party/externals/libjpeg-turbo + mv libjpeg-turbo-src/libjpeg-turbo-3.0.1 skia/third_party/externals/libjpeg-turbo - name: Setup Visual Studio environment uses: ilammy/msvc-dev-cmd@v1 From c3af228a1f7a05cc89ece36aed402e5d990970c1 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 07:01:30 +0100 Subject: [PATCH 20/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index af773a53..a7f70fda 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -102,7 +102,7 @@ jobs: run: | mkdir libjpeg-turbo-build cd libjpeg-turbo-build - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/skia/third_party/externals/libjpeg-turbo" -G Ninja "${{ github.workspace }}/skia/third_party/externals/libjpeg-turbo" + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/skia/third_party/externals/libjpeg-turbo" -G Ninja "${{ github.workspace }}/skia/third_party/externals/libjpeg-turbo" ninja ninja install From 874ae0fdc3170f0f9c280c3992786e30cc8392d7 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 07:11:06 +0100 Subject: [PATCH 21/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index a7f70fda..d134bff7 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -105,6 +105,7 @@ jobs: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/skia/third_party/externals/libjpeg-turbo" -G Ninja "${{ github.workspace }}/skia/third_party/externals/libjpeg-turbo" ninja ninja install + copy jconfig.h "${{ github.workspace }}\skia\third_party\externals\libjpeg-turbo\jconfig.h" - name: Verify Skia structure shell: bash From b6e1ecf0e48eb384fe8faf87d8d5d2f54f9cf0f2 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 07:27:32 +0100 Subject: [PATCH 22/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index d134bff7..0b0664db 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -63,6 +63,8 @@ jobs: needs: check-version if: ${{ needs.check-version.outputs.should_build == 'true' }} runs-on: ${{ matrix.os }} + permissions: + contents: write strategy: matrix: From a74a605214545e5c9f47ee73e7e55131985bb7b7 Mon Sep 17 00:00:00 2001 From: bearopo Date: Thu, 7 May 2026 07:47:00 +0100 Subject: [PATCH 23/23] Update aseprite_build_deploy.yml --- .github/workflows/aseprite_build_deploy.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/aseprite_build_deploy.yml b/.github/workflows/aseprite_build_deploy.yml index 0b0664db..319421a3 100644 --- a/.github/workflows/aseprite_build_deploy.yml +++ b/.github/workflows/aseprite_build_deploy.yml @@ -138,6 +138,14 @@ jobs: shell: bash run: rm -f gen modp_b64_gen gen.exe gen.exe.manifest modp_b64_gen.exe modp_b64_gen.exe.manifest + - name: Copy OpenSSL DLL + shell: bash + run: | + cp "C:/Program Files/OpenSSL/bin/libcrypto-3-x64.dll" aseprite/build/bin/ || \ + cp "C:/Program Files/OpenSSL-Win64/bin/libcrypto-3-x64.dll" aseprite/build/bin/ || \ + cp "C:/Windows/System32/libcrypto-3-x64.dll" aseprite/build/bin/ || \ + echo "Could not find libcrypto-3-x64.dll" + - name: Make portable zip working-directory: aseprite/build/bin shell: bash