Some checks failed
Release Multiplatform Binaries / build (deb,appimage, linux-x86_64, ubuntu-22.04, x86_64-unknown-linux-gnu) (push) Waiting to run
Release Multiplatform Binaries / build (dmg,app, macos-arm64, macos-14, aarch64-apple-darwin) (push) Waiting to run
Release Multiplatform Binaries / build (dmg,app, macos-x86_64, macos-14, x86_64-apple-darwin) (push) Waiting to run
Release Multiplatform Binaries / build (nsis, windows-x86_64, windows-latest, x86_64-pc-windows-msvc) (push) Waiting to run
Release Multiplatform Binaries / create-release (push) Blocked by required conditions
Publish AUR Packages / resolve (release) Waiting to run
Publish AUR Packages / publish-source (release) Blocked by required conditions
Publish AUR Packages / publish-bin (release) Blocked by required conditions
Publish COPR Package / resolve (release) Failing after 0s
Publish COPR Package / publish-bin (release) Has been skipped
171 lines
6.4 KiB
YAML
171 lines
6.4 KiB
YAML
name: Release Multiplatform Binaries
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag:
|
|
description: 'Release Tag (e.g. v2.5.1)'
|
|
required: false
|
|
default: 'v2.5.1-c3'
|
|
type: string
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
env:
|
|
SQLX_OFFLINE: true
|
|
SQLX_OFFLINE_DIR: packages/oneclient_db/.sqlx
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
# Linux x86_64
|
|
- os: ubuntu-22.04
|
|
target: x86_64-unknown-linux-gnu
|
|
name: linux-x86_64
|
|
formats: deb,appimage
|
|
|
|
# Windows x86_64
|
|
- os: windows-latest
|
|
target: x86_64-pc-windows-msvc
|
|
name: windows-x86_64
|
|
formats: nsis
|
|
|
|
# macOS Apple Silicon
|
|
- os: macos-14
|
|
target: aarch64-apple-darwin
|
|
name: macos-arm64
|
|
formats: dmg,app
|
|
|
|
# macOS Intel (cross-compiled on macos-14)
|
|
- os: macos-14
|
|
target: x86_64-apple-darwin
|
|
name: macos-x86_64
|
|
formats: dmg,app
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Rust toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
targets: ${{ matrix.target }}
|
|
|
|
- name: Rust Cache
|
|
uses: Swatinem/rust-cache@v2
|
|
with:
|
|
key: ${{ matrix.target }}
|
|
cache-all-crates: true
|
|
|
|
- name: Install Linux build dependencies
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
libwebkit2gtk-4.1-dev \
|
|
build-essential \
|
|
curl \
|
|
wget \
|
|
file \
|
|
libxdo-dev \
|
|
libssl-dev \
|
|
libayatana-appindicator3-dev \
|
|
librsvg2-dev \
|
|
libfontconfig1-dev \
|
|
libfreetype6-dev \
|
|
libgl1-mesa-dev \
|
|
libvulkan-dev \
|
|
libasound2-dev
|
|
|
|
- name: Install cargo-packager
|
|
run: cargo install cargo-packager --locked || true
|
|
|
|
- name: Build Release Binary
|
|
run: cargo build --release --bin oneclient_app --target ${{ matrix.target }}
|
|
|
|
- name: Package Application
|
|
run: cargo packager --release --target ${{ matrix.target }} --formats ${{ matrix.formats }}
|
|
continue-on-error: true
|
|
|
|
- name: Generate RPM Package (Linux)
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
cargo install cargo-generate-rpm --locked || true
|
|
cargo generate-rpm --target ${{ matrix.target }} -p oneclient_app || true
|
|
|
|
- name: Upload Build Artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: binaries-${{ matrix.name }}
|
|
if-no-files-found: warn
|
|
path: |
|
|
target/${{ matrix.target }}/release/*.deb
|
|
target/${{ matrix.target }}/release/*.AppImage
|
|
target/${{ matrix.target }}/release/*.dmg
|
|
target/${{ matrix.target }}/release/*-setup.exe
|
|
target/${{ matrix.target }}/generate-rpm/*.rpm
|
|
target/generate-rpm/*.rpm
|
|
target/release/*.deb
|
|
target/release/*.AppImage
|
|
target/release/*.dmg
|
|
target/release/*-setup.exe
|
|
|
|
create-release:
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch'
|
|
steps:
|
|
- name: Download all artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
path: ./artifacts
|
|
merge-multiple: true
|
|
|
|
- name: Determine Release Tag
|
|
id: release_tag
|
|
run: |
|
|
if [[ "${{ github.ref_name }}" =~ ^v ]]; then
|
|
echo "tag=${{ github.ref_name }}" >> $GITHUB_OUTPUT
|
|
elif [ -n "${{ inputs.tag }}" ]; then
|
|
echo "tag=${{ inputs.tag }}" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "tag=v2.5.1-c3" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: Clean up previous release if exists
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
gh release delete "${{ steps.release_tag.outputs.tag }}" -y --cleanup-tag=false || true
|
|
|
|
- name: Publish GitHub Release
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
files: ./artifacts/**/*
|
|
tag_name: ${{ steps.release_tag.outputs.tag }}
|
|
name: "OneLauncher-Cracked ${{ steps.release_tag.outputs.tag }}"
|
|
body: |
|
|
### What's New in ${{ steps.release_tag.outputs.tag }}
|
|
- **Complete Multiplayer Server Skin Support**: Native integration with client-side `OfflineSkins Reloaded` for Fabric 1.21.11, allowing skins to render directly on cracked multiplayer servers (e.g. `alwto.net`) when the server transmits empty player profiles.
|
|
- **Proper Isolated Offline Skin System (Authlib-Injector)**: Embedded, zero-network-dependency Authlib-Injector session provider with RSA signature verification. Your skin is attached strictly and exclusively to your player profile, completely eliminating the bug where other players or NPCs on offline servers would receive your skin.
|
|
- **Dynamic Version Compatibility**: Automatically gates offline skin mod integration strictly to matching versions, while Authlib-Injector handles clean, zero-dependency offline profile signing across all Minecraft versions.
|
|
- **Purged Incompatible Mods**: Completely cleaned and prevented CustomSkinLoader crashes on modern Fabric Loader (0.17+) and Sponge Mixin 0.8.7.
|
|
- **Vanilla & Multi-server Integrity**: Other offline players remain authentic vanilla Steve/Alex, while online players on hybrid servers display their legitimate Mojang skins via transparent caching session proxying.
|
|
- **Automatic Legacy Cleanup**: Restores pristine `client.jar` and removes stale skin resource packs from `options.txt` on launch.
|
|
- **Guaranteed Offline Game Launch**: Direct offline launching with 0 Microsoft accounts required.
|
|
- **In-Launcher 3D Skin Changer**: Full 3D skin preview, slim/classic arm model toggle, local file import, and online skin downloads.
|
|
- **Rebased on Upstream 2.5.1**: All upstream 2.5.1 features, hook error reporting, and metadata self-healing.
|
|
draft: false
|
|
prerelease: false
|
|
generate_release_notes: false
|
|
make_latest: true
|
|
fail_on_unmatched_files: false
|