OneLauncher-Cracked/.github/workflows/release.yml
oiupoyt a83bda9b53
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
chore(release): bump version to 2.5.1-c3
2026-09-23 07:12:02 +05:30

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