name: "Build" on: workflow_dispatch: push: branches: - koputer - main jobs: build-ramdisk: runs-on: macos-15 steps: - uses: actions/checkout@v4 with: repository: palera1n/jbinit submodules: true - name: Select correct Xcode uses: mobiledevops/xcode-select-version-action@v1 with: xcode-select-version: 16.4 - name: Install dependencies (brew) run: | brew install make gnu-sed ldid-procursus fakeroot - name: Obtain artifacts run: | curl -LOO https://static.palera.in/artifacts/loader/universal_lite/palera1nLoader{TV,}.ipa curl -LO https://static.palera.in/binpack.tar install -m644 binpack.tar palera1nLoader{TV,}.ipa src - name: Build run: | gmake -j1 tools gmake -j$(sysctl -n hw.ncpu) - name: Prepare upload directory run: | mkdir upload mv src/ramdisk.dmg upload/ mv src/binpack.dmg upload/ - name: Upload uses: actions/upload-artifact@v4 with: name: embedded path: | upload/* build-pongo: runs-on: macos-latest steps: - uses: actions/checkout@v4 with: repository: palera1n/PongoOS - name: Build run: | make - name: Prepare upload directory run: | mkdir upload mv build/Pongo.bin upload/ mv build/checkra1n-kpf-pongo upload/ - name: Upload uses: actions/upload-artifact@v4 with: name: pongo path: | upload/* build-linux: runs-on: ubuntu-latest needs: [build-pongo, build-ramdisk] strategy: matrix: triple: - i486-linux-musl - x86_64-linux-musl - armel-linux-musleabi - aarch64-linux-musl steps: - uses: actions/checkout@v4 - name: Download Pongo uses: actions/download-artifact@v4 with: name: pongo path: payloads/ - name: Download embedded artifacts uses: actions/download-artifact@v4 with: name: embedded path: payloads/ - name: Download musl toolchain run: | curl -u ${{ secrets.ACTIONS_RESOURCES_LOGIN }} -LO https://static.palera.in/action-resources/musl-cross/${{ matrix.triple }}-cross.tar.zst tar --zstd -xf ${{ matrix.triple }}-cross.tar.zst find ./${{ matrix.triple }}-cross -name "*.la" -type f -delete echo "$(pwd)/${{ matrix.triple }}-cross/bin" >> $GITHUB_PATH - name: Install dependencies (apt) run: | sudo apt update sudo apt install -y build-essential cmake autoconf automake libtool pkg-config zstd - name: Build run: | SYSROOT_PATH="$("$PWD/${{ matrix.triple }}-cross/bin/${{ matrix.triple }}-gcc" -print-sysroot)" CC="${{ matrix.triple }}-gcc" CXX="${{ matrix.triple }}-g++" \ make palera1n \ WITH_STATIC=1 \ WITH_TUI=1 \ BUILD_TYPE=Release \ CMAKE_SYSROOT="$SYSROOT_PATH" \ CROSS_HOST_TRIPLE="${{ matrix.triple }}" \ JOBS=$(nproc) ${{ matrix.triple }}-strip -s build/palera1n - name: Upload uses: actions/upload-artifact@v4 with: name: palera1n-${{ matrix.triple }} path: | build/palera1n build-macos: runs-on: ${{ matrix.os }} needs: [build-pongo, build-ramdisk] strategy: matrix: include: - os: macos-latest arch: arm64 - os: macos-15-intel arch: x86_64 steps: - uses: actions/checkout@v4 - name: Download Pongo uses: actions/download-artifact@v4 with: name: pongo path: payloads/ - name : Download embedded artifacts uses: actions/download-artifact@v4 with: name: embedded path: payloads/ - name: Install dependencies (brew) run: | brew update brew install cmake autoconf automake libtool pkg-config create-dmg - name: Build run: | make palera1n WITH_STATIC=1 WITH_GUI=1 WITH_TUI=1 BUILD_TYPE=Release JOBS=$(sysctl -n hw.ncpu) strip -x build/palera1n.app/Contents/MacOS/palera1n - name: Package run: | mkdir -p dist cp -r build/palera1n.app dist/ create-dmg \ --volname "palera1n-macos-${{ matrix.arch }}" \ --volicon "packaging/drive.icns" \ --background "packaging/background.png" \ --window-pos 200 120 \ --window-size 510 350 \ --icon-size 100 \ --icon palera1n.app 160 155 \ --hide-extension palera1n.app \ --app-drop-link 350 155 \ dist/palera1n-macos-${{ matrix.arch }}.dmg dist - name: Upload uses: actions/upload-artifact@v4 with: name: palera1n-macos-${{ matrix.arch }} path: | dist/palera1n-macos-${{ matrix.arch }}.dmg build-windows: runs-on: windows-latest needs: [build-pongo, build-ramdisk] env: LIBUSBK_VERSION: libusbK-3.1.0.0-bin LIBUSBK_URL: https://github.com/mcuee/libusbk/releases/download/V3.1.0.0/ LIBUSBK_WDFCOINSTALLER: libusbK/bin/sys/amd64/WdfCoInstaller01009.dll LIBUSBK_WDFCOINSTALLER_RENAMED: libusbK/bin/sys/amd64/WdfCoInstaller1011.dll steps: - uses: actions/checkout@v4 - name: Download Pongo uses: actions/download-artifact@v4 with: name: pongo path: payloads/ - name: Download embedded artifacts uses: actions/download-artifact@v4 with: name: embedded path: payloads/ - name: Download libusbK drivers shell: bash run: | curl -LO "${LIBUSBK_URL}${LIBUSBK_VERSION}.7z" 7z x "${LIBUSBK_VERSION}.7z" -olibusbK-tmp mv "libusbK-tmp/${LIBUSBK_VERSION}" libusbK mv "${LIBUSBK_WDFCOINSTALLER}" "${LIBUSBK_WDFCOINSTALLER_RENAMED}" - name: Install dependencies (choco) run: choco install nsis.portable - name: Install dependencies (msys2) uses: msys2/setup-msys2@v2 with: msystem: MINGW64 install: > git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake libtool openssl openssl-devel python-devel autoconf automake zip vim make patch update: true - name: Build shell: msys2 {0} run: | make palera1n_mingw WITH_STATIC=1 WITH_GUI=1 BUILD_TYPE=Release JOBS=$(nproc) strip -s build/palera1n.exe - name: Package run: | mkdir -p dist\installer copy build\*.exe dist\installer\ copy build\*.dll dist\installer\ copy packaging\installer.nsi dist\installer\ copy resources\palera1n.ico dist\installer\icon.ico makensis dist\installer\installer.nsi move dist\installer\installer.exe dist\palera1n-windows-x86_64-setup.exe - name: Upload uses: actions/upload-artifact@v4 with: name: palera1n-windows-x86_64 path: | dist/palera1n-windows-x86_64-setup.exe