From 070eb19e0a89831de874707e53a6fe4e5c274b3c Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Mon, 21 Jul 2025 19:07:21 +0100 Subject: [PATCH 01/12] Update Linux build to use Docker with Ubuntu 16.04 for better glibc compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Migrate build-linux job from ubuntu-20.04 runner to Docker container - Use ubuntu:16.04 image for glibc 2.23 compatibility with older systems like Slackware 14.2 - Replace actions/setup-java with manual OpenJDK 8 installation in container - Remove sudo commands since container runs as root - Add CLAUDE.md documentation for future development 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .github/workflows/build.yml | 24 ++++++---- CLAUDE.md | 91 +++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+), 8 deletions(-) create mode 100644 CLAUDE.md diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index df09845..9f71c88 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,10 @@ env: jobs: build-linux: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest + container: + image: ubuntu:16.04 + options: --user root steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it @@ -21,22 +24,27 @@ jobs: with: submodules: recursive - - uses: actions/setup-java@v2 - with: - distribution: 'adopt' # See 'Supported distributions' for available options - java-version: '8' + - name: Install dependencies + run: | + apt update + apt install -y wget curl git build-essential cmake + apt install -y libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev libwayland-dev libxkbcommon-dev + - name: Setup Java 8 + run: | + apt install -y openjdk-8-jdk + export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 + echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> $GITHUB_ENV + echo "/usr/lib/jvm/java-8-openjdk-amd64/bin" >> $GITHUB_PATH - name: Build raylib run: | - sudo apt update - sudo apt install libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev libwayland-dev libxkbcommon-dev cd raylib mkdir build cd build cmake -DBUILD_EXAMPLES=OFF -DCUSTOMIZE_BUILD=ON -DSUPPORT_FILEFORMAT_JPG=ON -DSUPPORT_FILEFORMAT_FLAC=ON -DWITH_PIC=ON -DCMAKE_BUILD_TYPE=Release .. make -j2 - sudo make install + make install - name: Build jaylib env: diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..3d97606 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,91 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +Jaylib is a Java Native Interface (JNI) binding library for Raylib 5.5, providing Java developers with access to the popular C game development library. The project uses JavaCPP to automatically generate JNI bindings from the native Raylib headers. + +## Build System and Commands + +### Primary Build Commands +- `./build-java.sh` - Main Java compilation and JAR creation (requires `RAYLIB_VERSION` environment variable) +- `./build-linux.sh` - Linux platform-specific build +- `./build-windows.sh` - Windows platform build (requires Visual Studio environment) +- `./build-native.sh` - Native library compilation + +### Testing +- `./run-test.sh` - Run the basic functionality test (requires `RAYLIB_PLATFORM` environment variable) +- `./run-test-jar.sh` - Run tests using the compiled JAR + +### Documentation +- `./build-docs.sh` - Generate Javadoc documentation + +### Environment Variables Required +- `RAYLIB_VERSION` - Version string for builds (e.g., "5.5.0-0") +- `RAYLIB_PLATFORM` - Platform identifier (e.g., "linux-x86_64", "windows-x86_64", "macosx-x86_64") + +## Architecture and Key Components + +### Core Structure +- **JavaCPP Integration**: Uses `javacpp.jar` and JavaCPP annotations in `RaylibConfig.java` to automatically generate JNI bindings +- **Multi-stage Build Process**: + 1. Generate Java bindings from C headers using JavaCPP + 2. Compile native code with platform-specific linkers + 3. Package everything into distributable JARs + +### Key Source Files +- `src/com/raylib/RaylibConfig.java` - JavaCPP configuration defining platform-specific linking and header includes +- `src/com/raylib/Raylib.java` - Auto-generated main binding class (created during build) +- `src/com/raylib/Colors.java` - Predefined color constants (RAYWHITE, BLACK, etc.) +- `src/com/raylib/Helpers.java` - Alternative constructor methods for structs +- `src/com/raylib/Test.java` - Basic functionality test and demo + +### Native Headers +The project includes Raylib C header files: +- `raylib.h` - Core Raylib API +- `rlgl.h` - OpenGL abstraction layer +- `raymath.h` - Math utility functions +- `physac.h` - Physics simulation +- `raygui.h` - Immediate mode GUI + +### Platform Support +Configured for cross-platform builds supporting: +- Windows x86_64 +- macOS x86_64 and ARM64 +- Linux x86_64 and ARM64 + +## JavaCPP Binding Specifics + +### Field Access Pattern +- Getters: `vector.x()` returns the x field value +- Setters: `vector.x(3)` sets the x field to 3 +- Position field renamed to `_position` due to JavaCPP's internal position field + +### Struct Initialization +JavaCPP uses fluent constructor syntax: +```java +var vec = new Vector3().x(1).y(2).z(3); +``` +Alternative constructors available in `Helpers.java`: +```java +var vec = Helpers.createVector3(1, 2, 3); +``` + +### Array Access +C arrays are not Java arrays - use position() method: +```java +model.materials().position(1).maps().position(2) // Second map of first material +``` + +## Build Dependencies +- Java 8+ (JDK required for compilation) +- Platform-specific C++ compiler (GCC on Linux, Visual Studio on Windows, Xcode on macOS) +- JavaCPP tool (included as `javacpp.jar`) +- Raylib native library (included as git submodule) + +## macOS Specific Requirements +When running Java applications on macOS, use the `-XstartOnFirstThread` JVM option: +```bash +java -XstartOnFirstThread -cp jaylib.jar:. MyGame +``` \ No newline at end of file From cd78539076d629ab58145f4a6cbf0b55d99e0880 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Mon, 21 Jul 2025 19:17:20 +0100 Subject: [PATCH 02/12] Update upload-artifact to v4 with unique artifact names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Upgrade from deprecated v3.2.1 to v4 across all build jobs - Fix artifact naming conflicts by using platform-specific names: - jaylib-linux-x86_64, jaylib-macosx-x86_64, jaylib-windows-x86_64, jaylib-windows-x86 - Resolves v4 restriction preventing multiple uploads to same artifact name 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .github/workflows/build.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f71c88..680928d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,9 +55,9 @@ jobs: ./build-docs.sh - name: Upload jar - uses: actions/upload-artifact@v3.2.1 + uses: actions/upload-artifact@v4 with: - name: jar + name: jaylib-linux-x86_64 path: ./*.jar # build-linux-arm: @@ -129,9 +129,9 @@ jobs: ./build-native.sh - name: Upload jar - uses: actions/upload-artifact@v3.2.1 + uses: actions/upload-artifact@v4 with: - name: jar + name: jaylib-macosx-x86_64 path: ./*macosx-x86_64*.jar build-windows: @@ -172,9 +172,9 @@ jobs: shell: cmd - name: Upload jar - uses: actions/upload-artifact@v3.2.1 + uses: actions/upload-artifact@v4 with: - name: jar + name: jaylib-windows-x86_64 path: ./*.jar build-windows32: @@ -220,7 +220,7 @@ jobs: shell: cmd - name: Upload jar - uses: actions/upload-artifact@v3.2.1 + uses: actions/upload-artifact@v4 with: - name: jar + name: jaylib-windows-x86 path: ./*.jar \ No newline at end of file From afb42e2b27de2bc9059529b93a03dd22675a625c Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Mon, 21 Jul 2025 19:29:37 +0100 Subject: [PATCH 03/12] hack version of node to allow checkout to run on older glibc --- .github/workflows/build.yml | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 680928d..4b23705 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,18 +17,35 @@ jobs: container: image: ubuntu:16.04 options: --user root + volumes: + # override /__e/node20 because GitHub Actions uses a version that requires too-recent glibc + # see "Install node.js for GitHub Actions" below + - /tmp:/__e/node20 steps: + - name: Install dependencies + run: | + apt update + apt install -y software-properties-common + add-apt-repository ppa:git-core/ppa -y + apt update + apt install -y wget curl git build-essential cmake ca-certificates + apt install -y libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev libwayland-dev libxkbcommon-dev + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: hack node + run: | + # Install a Node.js version that works in older Ubuntu containers (read: does not require very recent glibc) + NODE_VERSION=v20.18.1 && + NODE_TAR_FILE=node-$NODE_VERSION-linux-x64-glibc-217.tar.gz && + NODE_URL=https://unofficial-builds.nodejs.org/download/release/$NODE_VERSION/$NODE_TAR_FILE && + curl -Lo /tmp/$NODE_TAR_FILE $NODE_URL && + tar -C /__e/node20 -x --strip-components=1 -f /tmp/$NODE_TAR_FILE - uses: actions/checkout@v2 with: submodules: recursive - - name: Install dependencies - run: | - apt update - apt install -y wget curl git build-essential cmake - apt install -y libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev libwayland-dev libxkbcommon-dev - name: Setup Java 8 run: | From 22bdb965fcf45fc7469c1baad828ccc909aaedcb Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Mon, 21 Jul 2025 20:00:03 +0100 Subject: [PATCH 04/12] Add CMake 3.31.6 build from source for Ubuntu 16.04 compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Download and build CMake 3.31.6 from source to replace outdated system version - Install to /usr/local with symlink override for system cmake - Add libssl-dev dependency for CMake bootstrap HTTPS support - Remove old cmake from apt install since we build from source - Enables building Raylib with modern CMake while maintaining glibc 2.23 compatibility 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .github/workflows/build.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4b23705..39d5720 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,9 +29,20 @@ jobs: apt install -y software-properties-common add-apt-repository ppa:git-core/ppa -y apt update - apt install -y wget curl git build-essential cmake ca-certificates + apt install -y wget curl git build-essential ca-certificates libssl-dev apt install -y libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev libwayland-dev libxkbcommon-dev + - name: Build and install CMake 3.31.6 + run: | + cd /tmp + wget https://github.com/Kitware/CMake/releases/download/v3.31.6/cmake-3.31.6.tar.gz + tar -xzf cmake-3.31.6.tar.gz + cd cmake-3.31.6 + ./bootstrap --prefix=/usr/local + make -j$(nproc) + make install + ln -sf /usr/local/bin/cmake /usr/bin/cmake + cmake --version # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: hack node From a16d126891d8c5258f1fcf44d4fbecf38d89828c Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Mon, 21 Jul 2025 20:17:41 +0100 Subject: [PATCH 05/12] add unzip dep --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 39d5720..7a2b88c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,7 +30,7 @@ jobs: add-apt-repository ppa:git-core/ppa -y apt update apt install -y wget curl git build-essential ca-certificates libssl-dev - apt install -y libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev libwayland-dev libxkbcommon-dev + apt install -y unzip libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev libwayland-dev libxkbcommon-dev - name: Build and install CMake 3.31.6 run: | From 2e1254d17d97f591b238affd7aeec848244bba38 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 22 Jul 2025 20:11:44 +0100 Subject: [PATCH 06/12] switch to use custom docker image --- .github/workflows/build.yml | 43 +++++-------------------------------- 1 file changed, 5 insertions(+), 38 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7a2b88c..c167f28 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,56 +15,23 @@ jobs: build-linux: runs-on: ubuntu-latest container: - image: ubuntu:16.04 + image: electronstudio/ubuntu16-modern:latest options: --user root volumes: # override /__e/node20 because GitHub Actions uses a version that requires too-recent glibc - # see "Install node.js for GitHub Actions" below - /tmp:/__e/node20 + steps: - - name: Install dependencies - run: | - apt update - apt install -y software-properties-common - add-apt-repository ppa:git-core/ppa -y - apt update - apt install -y wget curl git build-essential ca-certificates libssl-dev - apt install -y unzip libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev libwayland-dev libxkbcommon-dev - - - name: Build and install CMake 3.31.6 + - name: fix node run: | - cd /tmp - wget https://github.com/Kitware/CMake/releases/download/v3.31.6/cmake-3.31.6.tar.gz - tar -xzf cmake-3.31.6.tar.gz - cd cmake-3.31.6 - ./bootstrap --prefix=/usr/local - make -j$(nproc) - make install - ln -sf /usr/local/bin/cmake /usr/bin/cmake - cmake --version + ln -s /usr/local/bin /__e/node20/bin + ls -l /__e/node20 - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: hack node - run: | - # Install a Node.js version that works in older Ubuntu containers (read: does not require very recent glibc) - NODE_VERSION=v20.18.1 && - NODE_TAR_FILE=node-$NODE_VERSION-linux-x64-glibc-217.tar.gz && - NODE_URL=https://unofficial-builds.nodejs.org/download/release/$NODE_VERSION/$NODE_TAR_FILE && - curl -Lo /tmp/$NODE_TAR_FILE $NODE_URL && - tar -C /__e/node20 -x --strip-components=1 -f /tmp/$NODE_TAR_FILE - uses: actions/checkout@v2 with: submodules: recursive - - - name: Setup Java 8 - run: | - apt install -y openjdk-8-jdk - export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 - echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> $GITHUB_ENV - echo "/usr/lib/jvm/java-8-openjdk-amd64/bin" >> $GITHUB_PATH - - name: Build raylib run: | cd raylib From 4731318e5db23fde35e8f32fdc6dcf58d7aa3686 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 22 Jul 2025 20:41:06 +0100 Subject: [PATCH 07/12] update windows to 2022 --- .github/workflows/build.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c167f28..745554f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,7 +26,6 @@ jobs: - name: fix node run: | ln -s /usr/local/bin /__e/node20/bin - ls -l /__e/node20 - uses: actions/checkout@v2 with: @@ -130,7 +129,7 @@ jobs: path: ./*macosx-x86_64*.jar build-windows: - runs-on: windows-2019 + runs-on: windows-2022 steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it @@ -173,7 +172,7 @@ jobs: path: ./*.jar build-windows32: - runs-on: windows-2019 + runs-on: windows-2022 steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it From 96a32c3fbb06f518c05160f88e18a62e99f49865 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 22 Jul 2025 20:41:06 +0100 Subject: [PATCH 08/12] add 32 bit linux build --- .github/workflows/build.yml | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 745554f..709bb1e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -54,6 +54,47 @@ jobs: name: jaylib-linux-x86_64 path: ./*.jar + build-linux-32bit: + runs-on: ubuntu-latest + container: + image: electronstudio/ubuntu16-modern:i386 + options: --user root + volumes: + # override /__e/node20 because GitHub Actions uses a version that requires too-recent glibc + - /tmp:/__e/node20 + + steps: + - name: fix node + run: | + ln -s /usr/local/bin /__e/node20/bin + + - uses: actions/checkout@v2 + with: + submodules: recursive + + - name: Build raylib + run: | + cd raylib + mkdir build + cd build + cmake -DBUILD_EXAMPLES=OFF -DCUSTOMIZE_BUILD=ON -DSUPPORT_FILEFORMAT_JPG=ON -DSUPPORT_FILEFORMAT_FLAC=ON -DWITH_PIC=ON -DCMAKE_BUILD_TYPE=Release .. + make -j2 + make install + + - name: Build jaylib + env: + RAYLIB_PLATFORM: linux-x86 + run: | + ./build-java.sh + ./build-native.sh + ./build-docs.sh + + - name: Upload jar + uses: actions/upload-artifact@v4 + with: + name: jaylib-linux-x86 + path: ./*.jar + # build-linux-arm: # runs-on: rpi # From e7b58e84c1eb60f074d8d2d436895dd22efad790 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 23 Jul 2025 21:16:43 +0100 Subject: [PATCH 09/12] make opengl version 2.1 for x86 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 709bb1e..8d67591 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -77,7 +77,7 @@ jobs: cd raylib mkdir build cd build - cmake -DBUILD_EXAMPLES=OFF -DCUSTOMIZE_BUILD=ON -DSUPPORT_FILEFORMAT_JPG=ON -DSUPPORT_FILEFORMAT_FLAC=ON -DWITH_PIC=ON -DCMAKE_BUILD_TYPE=Release .. + cmake -DBUILD_EXAMPLES=OFF -DCUSTOMIZE_BUILD=ON -DOPENGL_VERSION=2.1 -DSUPPORT_FILEFORMAT_JPG=ON -DSUPPORT_FILEFORMAT_FLAC=ON -DWITH_PIC=ON -DCMAKE_BUILD_TYPE=Release .. make -j2 make install From 062cd775be35ed939a7841167b4b7fa04bd498b9 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Thu, 24 Jul 2025 18:52:15 +0100 Subject: [PATCH 10/12] dont bundle javacpp.jar --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8d67591..5d606bd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -52,7 +52,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: jaylib-linux-x86_64 - path: ./*.jar + path: ./jaylib*.jar build-linux-32bit: runs-on: ubuntu-latest @@ -93,7 +93,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: jaylib-linux-x86 - path: ./*.jar + path: ./jaylib-natives*.jar # build-linux-arm: # runs-on: rpi @@ -210,7 +210,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: jaylib-windows-x86_64 - path: ./*.jar + path: ./jaylib-natives*.jar build-windows32: runs-on: windows-2022 @@ -258,4 +258,4 @@ jobs: uses: actions/upload-artifact@v4 with: name: jaylib-windows-x86 - path: ./*.jar \ No newline at end of file + path: ./jaylib-natives*.jar \ No newline at end of file From 13692abc4b28e6b263f94b4cb5b0a40c8ae88f17 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Thu, 24 Jul 2025 19:13:27 +0100 Subject: [PATCH 11/12] add artifact merge job to combine all platform builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .github/workflows/build.yml | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5d606bd..3a43f4f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -258,4 +258,26 @@ jobs: uses: actions/upload-artifact@v4 with: name: jaylib-windows-x86 - path: ./jaylib-natives*.jar \ No newline at end of file + path: ./jaylib-natives*.jar + + merge-artifacts: + runs-on: ubuntu-latest + needs: [build-linux, build-linux-32bit, build-mac, build-windows, build-windows32] + + steps: + - name: Download all artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts + merge-multiple: true + + - name: Create merged artifact + run: | + cd artifacts + zip -r ../jaylib-all-platforms.zip . + + - name: Upload merged artifact + uses: actions/upload-artifact@v4 + with: + name: jaylib-all-platforms + path: jaylib-all-platforms.zip \ No newline at end of file From ee73a7df5d96a2a9763118fc4a8bb726c6ac399a Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Thu, 24 Jul 2025 19:21:48 +0100 Subject: [PATCH 12/12] fix double-zip issue in artifact merge job MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove manual zipping since GitHub automatically zips artifacts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .github/workflows/build.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a43f4f..2e9645e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -271,13 +271,8 @@ jobs: path: artifacts merge-multiple: true - - name: Create merged artifact - run: | - cd artifacts - zip -r ../jaylib-all-platforms.zip . - - name: Upload merged artifact uses: actions/upload-artifact@v4 with: name: jaylib-all-platforms - path: jaylib-all-platforms.zip \ No newline at end of file + path: artifacts/ \ No newline at end of file