diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index a684cbf17..f75e022c6 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -8,6 +8,76 @@ on: workflow_dispatch: jobs: + build-i686-windows: + runs-on: windows-latest + defaults: + run: + shell: msys2 {0} + steps: + - name: Install MSYS2 + uses: msys2/setup-msys2@v2 + with: + msystem: MINGW32 + update: true + install: >- + git + make + mingw-w64-i686-toolchain + mingw-w64-i686-SDL2 + mingw-w64-i686-zlib + - name: Checkout repository + uses: actions/checkout@v4 + - name: Build pd.exe + run: make -f Makefile.port -j + - name: Build pd.pal.exe + run: make -f Makefile.port -j ROMID=pal-final + - name: Build pd.jpn.exe + run: make -f Makefile.port -j ROMID=jpn-final + - name: Prepare artifact for packaging + run: | + mkdir -p bin/data + cp build/ntsc-final-port/pd.exe bin/ + cp build/pal-final-port/pd.pal.exe bin/ + cp build/jpn-final-port/pd.jpn.exe bin/ + cp /mingw32/bin/{SDL2.dll,zlib1.dll,libgcc_s_dw2-1.dll,libwinpthread-1.dll} bin/ + touch bin/data/put_your_rom_here.txt + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: pd-i686-windows + path: bin/ + retention-days: 0 + + build-i686-linux: + runs-on: ubuntu-latest + steps: + - name: Install dependencies + run: | + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install git gcc g++ gcc-multilib g++-multilib make libsdl2-dev zlib1g-dev libsdl2-dev:i386 zlib1g-dev:i386 + - name: Checkout repository + uses: actions/checkout@v4 + - name: Build pd.exe + run: make -f Makefile.port TARGET_PLATFORM=i686-linux -j2 + - name: Build pd.pal.exe + run: make -f Makefile.port TARGET_PLATFORM=i686-linux -j2 ROMID=pal-final + - name: Build pd.jpn.exe + run: make -f Makefile.port TARGET_PLATFORM=i686-linux -j2 ROMID=jpn-final + - name: Prepare artifact for packaging + run: | + mkdir -p bin/data + cp build/ntsc-final-port/pd.exe bin/pd + cp build/pal-final-port/pd.pal.exe bin/pd.pal + cp build/jpn-final-port/pd.jpn.exe bin/pd.jpn + touch bin/data/put_your_rom_here.txt + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: pd-i686-linux + path: bin/ + retention-days: 0 + build-x86_64-windows: runs-on: windows-latest defaults: @@ -82,7 +152,7 @@ jobs: build-flatpak-bundle: name: "Build flatpak bundle" runs-on: ubuntu-latest - needs: [build-x86_64-linux] + needs: [build-i686-linux, build-x86_64-linux] container: image: bilelmoussaoui/flatpak-github-actions:freedesktop-23.08 options: --privileged @@ -118,7 +188,7 @@ jobs: publish-latest-build: runs-on: ubuntu-latest if: github.ref == 'refs/heads/port-x64' - needs: [build-x86_64-windows, build-x86_64-linux, build-flatpak-bundle] + needs: [build-i686-windows, build-i686-linux, build-x86_64-windows, build-x86_64-linux, build-flatpak-bundle] permissions: contents: write steps: @@ -132,7 +202,9 @@ jobs: run: | mkdir ci-release pushd ci-artifacts + tar czf ../ci-release/pd-i686-linux.tar.gz pd-i686-linux tar czf ../ci-release/pd-x86_64-linux.tar.gz pd-x86_64-linux + zip -r ../ci-release/pd-i686-windows.zip pd-i686-windows zip -r ../ci-release/pd-x86_64-windows.zip pd-x86_64-windows mv io.github.fgsfdsfgs.perfect_dark.flatpak/io.github.fgsfdsfgs.perfect_dark.flatpak ../ci-release/ popd