From 9e6f4a90afb8e545e854be9e30d3f14aa5ff0272 Mon Sep 17 00:00:00 2001 From: G2-Games Date: Wed, 17 Jul 2024 00:48:39 -0500 Subject: [PATCH] Add PAK Explorer auto build --- .github/workflows/build_pak_explorer.yml | 114 +++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 .github/workflows/build_pak_explorer.yml diff --git a/.github/workflows/build_pak_explorer.yml b/.github/workflows/build_pak_explorer.yml new file mode 100644 index 0000000..c0e020f --- /dev/null +++ b/.github/workflows/build_pak_explorer.yml @@ -0,0 +1,114 @@ +name: Publish utilities on release + +on: + push: + tags: [ 'explorer-*.*.*' ] + +env: + BINARIES: "--bin pak_explorer" + +permissions: + contents: write + +jobs: + build: + name: Build binaries for Windows and Linux + runs-on: ubuntu-latest + steps: + - name: '📄 Checkout' + uses: actions/checkout@v4 + + - name: '⚙️ Set up Rust environment' + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + targets: x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu + + - name: '🔽 Cache Rust dependencies' + uses: actions/cache@v4 + with: + path: target + key: ${{ runner.OS }}-build-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.OS }}-build- + + - name: '🔄 Set up additional requirements' + run: | + sudo apt-get install -y gcc-mingw-w64 + pip install cargo-zigbuild + + - name: '📦 Package Windows x86_64' + run: | + cd ${{github.workspace}} + cargo build --profile production --target x86_64-pc-windows-gnu $BINARIES + cp target/x86_64-pc-windows-gnu/production/pak_explorer.exe PAK-Explorer_Windows-x86_64.exe + gh release upload ${{ github.ref_name }} PAK-Explorer_Windows-x86_64.exe + env: + GITHUB_TOKEN: ${{ github.TOKEN }} + shell: bash + + - name: '📦 Package Windows i686' + run: | + cd ${{github.workspace}} + cargo build --profile production --target i686-pc-windows-gnu $BINARIES + cp target/i686-pc-windows-gnu/production/pak_explorer.exe PAK-Explorer_Windows-x86.exe + gh release upload ${{ github.ref_name }} PAK-Explorer_Windows-x86.exe + env: + GITHUB_TOKEN: ${{ github.TOKEN }} + shell: bash + + - name: '📦 Package Linux x86_64' + run: | + cd ${{github.workspace}} + cargo build --profile production --target x86_64-unknown-linux-gnu $BINARIES + cp target/x86_64-unknown-linux-gnu/production/pak_explorer PAK-Explorer_Linux-x86_64 + gh release upload ${{ github.ref_name }} PAK-Explorer_Linux-x86_64 + env: + GITHUB_TOKEN: ${{ github.TOKEN }} + shell: bash + + - name: '📦 Package Linux aarch64' + run: | + cd ${{github.workspace}} + cargo zigbuild --profile production --target aarch64-unknown-linux-gnu $BINARIES + cp target/aarch64-unknown-linux-gnu/production/pak_explorer PAK-Explorer_Linux-Arm64 + gh release upload ${{ github.ref_name }} PAK-Explorer_Linux-Arm64 + env: + GITHUB_TOKEN: ${{ github.TOKEN }} + shell: bash + + build-mac: + name: Build binaries for MacOS + runs-on: macos-14 + steps: + - name: '📄 Checkout' + uses: actions/checkout@v4 + + - name: '⚙️ Set up Rust environment' + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + targets: x86_64-apple-darwin, aarch64-apple-darwin + + - name: '🔽 Cache Rust dependencies' + uses: actions/cache@v4 + with: + path: target + key: ${{ runner.OS }}-build-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.OS }}-build- + + - name: '🔄 Set up additional requirements' + run: | + brew install zig + cargo install --locked cargo-zigbuild + + - name: '📦 Package MacOS Universal2' + run: | + cd ${{github.workspace}} + cargo zigbuild --manifest-path "pak_explorer/Cargo.toml" --profile production --target universal2-apple-darwin $BINARIES + cp target/universal2-apple-darwin/production/pak_explorer PAK-Explorer_Mac-Universal + gh release upload ${{ github.ref_name }} PAK-Explorer_Mac-Universal + env: + GITHUB_TOKEN: ${{ github.TOKEN }} + shell: bash