- Rebased base onto official Polyfrost OneLauncher 2.4.2 (release v2.4.2). - Ensured offline mode launches with 0 Microsoft accounts required (no OfflineRequiresMicrosoft error). - Maintained custom 3D offline skin changer, player model switch (Classic/Slim), and targeted Minecraft Java UUID character slot isolation to prevent multiplayer skin cloning. - Maintained CustomSkinLoader auto-configuration for local skins, Ely.by, and SkinRestorer. - Integrated direct GitHub Releases auto-updater pointing to oiupoyt/OneLauncher-Cracked. - Ported inline username renaming modal and Change Skin navigation in account settings and onboarding. - Maintained mods filter popover blur/text ghosting fix in package manager. - Preserved fast dev profile and multiplatform release workflow for v2.4.2-c1. - All workspace tests and clippy checks pass with 0 errors.
167 lines
5.5 KiB
YAML
167 lines
5.5 KiB
YAML
name: Release Multiplatform Binaries
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag:
|
|
description: 'Release Tag (e.g. v2.4.2)'
|
|
required: false
|
|
default: 'v2.4.2-c1'
|
|
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.3.1-c2" >> $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 }}
|
|
- **Fixed Offline Game Launch**: Removed upstream's check that blocked offline accounts from launching the game unless at least one Microsoft account was signed in. Offline accounts can now launch directly with 0 Microsoft accounts required.
|
|
- **Rebased onto Official Upstream 2.3.1**: Integrated all upstream OneLauncher 2.3.1 updates, fixes, and performance improvements.
|
|
- **Offline / Cracked Accounts**: Full offline account support with customizable username and avatar caching.
|
|
- **Custom Offline Skins & targeted multiplayer injection**: Custom 3D skin changer, per-account UUID hash targeting preventing multiplayer skin cloning, and automatic CustomSkinLoader config generation.
|
|
- **Integrated Auto-Updater**: Native background check and direct GitHub Releases binary downloads.
|
|
draft: false
|
|
prerelease: false
|
|
generate_release_notes: false
|
|
make_latest: true
|
|
fail_on_unmatched_files: false
|