name: Build binaries on: push: paths-ignore: - 'HBC/**' - 'Languages/**' pull_request: paths-ignore: - 'HBC/**' - 'Languages/**' jobs: download-build-tools: runs-on: ubuntu-20.04 timeout-minutes: 20 steps: - name: Restore cache id: cache-1 uses: actions/cache@v2 with: path: cache key: ${{ runner.os }}-cache-1 - name: Download devkitPPC r38, libogc 2.1.0 and required tools if: steps.cache-1.outputs.cache-hit != 'true' # general-tools is needed for bin2s and gamecube-tools is needed for elf2dol & gcdsptool run: | mkdir cache && cd cache wget "https://wii.leseratte10.de/devkitPro/file.php/devkitPPC-r38-1-linux_x86_64.pkg.tar.xz" wget "https://wii.leseratte10.de/devkitPro/file.php/devkitppc-rules-1.1.0-1-any.pkg.tar.xz" wget "https://wii.leseratte10.de/devkitPro/file.php/libogc-2.1.0-1-any.pkg.tar.xz" wget "https://wii.leseratte10.de/devkitPro/file.php/general-tools-1.2.0-1-linux.pkg.tar.xz" wget "https://wii.leseratte10.de/devkitPro/file.php/gamecube-tools-1.0.2-1-linux.pkg.tar.xz" cd .. - name: Verify checksums run: | sha256sum -c < /dev/null PATH=$(pwd)/devkitpro/devkitPPC/bin:$PATH DEVKITPPC=$(pwd)/devkitpro/devkitPPC DEVKITPRO=$(pwd)/devkitpro make - name: Package id: pack run: | mkdir -p upload/apps/usbloader_gx cp boot.dol upload/apps/usbloader_gx cp HBC/icon.png upload/apps/usbloader_gx cp HBC/meta.xml upload/apps/usbloader_gx echo "::set-output name=sha::$(echo ${GITHUB_SHA} | head -c 7)" - name: Upload binary uses: actions/upload-artifact@v2 with: name: usbloadergx_${{ steps.pack.outputs.sha }} path: upload - name: Upload debug binary uses: actions/upload-artifact@v2 with: name: usbloadergx_${{ steps.pack.outputs.sha }}_debug path: boot.elf build-latest-libogc: runs-on: ubuntu-20.04 needs: download-build-tools steps: - uses: actions/checkout@v2 - name: Restore cache id: cache-1 uses: actions/cache@v2 with: path: cache key: ${{ runner.os }}-cache-1 - name: Check cache if: steps.cache-1.outputs.cache-hit != 'true' run: exit 1 - name: Extract downloaded files run: | tar -xf cache/devkitPPC-r38-1-linux_x86_64.pkg.tar.xz --strip-components=1 tar -xf cache/devkitppc-rules-1.1.0-1-any.pkg.tar.xz --strip-components=1 tar -xf cache/general-tools-1.2.0-1-linux.pkg.tar.xz --strip-components=1 tar -xf cache/gamecube-tools-1.0.2-1-linux.pkg.tar.xz --strip-components=1 - name: Checkout libogc uses: actions/checkout@v2 with: repository: devkitPro/libogc path: libogc - name: Compile and install libogc run: PATH=$(pwd)/devkitpro/devkitPPC/bin:$PATH DEVKITPPC=$(pwd)/devkitpro/devkitPPC DEVKITPRO=$(pwd)/devkitpro make install -C libogc - name: Compile USB Loader GX # version would be 0 unless subversion is removed run: | rm -r libogc sudo apt-get -qq remove subversion > /dev/null PATH=$(pwd)/devkitpro/devkitPPC/bin:$PATH DEVKITPPC=$(pwd)/devkitpro/devkitPPC DEVKITPRO=$(pwd)/devkitpro make - name: Package id: pack run: | mkdir -p upload/apps/usbloader_gx cp boot.dol upload/apps/usbloader_gx cp HBC/icon.png upload/apps/usbloader_gx cp HBC/meta.xml upload/apps/usbloader_gx echo "::set-output name=sha::$(echo ${GITHUB_SHA} | head -c 7)" - name: Upload binary uses: actions/upload-artifact@v2 with: name: usbloadergx_libogc_${{ steps.pack.outputs.sha }} path: upload - name: Upload debug binary uses: actions/upload-artifact@v2 with: name: usbloadergx_libogc_${{ steps.pack.outputs.sha }}_debug path: boot.elf