mirror of
https://github.com/Pixelplanet/Pixel-VR-Player.git
synced 2026-10-20 08:01:17 +02:00
Users can now install with a single command, either piped or from the release tarball: curl -fsSL .../tools/install.sh | sh ./install.sh Tools/install.sh downloads the latest (or a pinned) ARM64 release, verifies the published checksum, installs to ~/PixelVRPlayer, and registers "Pixel VR Player" as a Non-Steam Game by editing shortcuts.vdf through an embedded binary-KeyValues helper (existing shortcuts are preserved, the file is backed up, and unsupported files are left untouched). Options cover --dir, --version, --no-steam, --restart-steam and --uninstall. Upgrades never touch ~/.config/pixelvr or ~/.cache/pixelvr. Also: - package-release.sh ships install.sh and a VERSION file in the tarball. - The release workflow publishes .sha256 checksums and syntax-checks the installer before building. - Docs describe the one-command path for end users. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
89 lines
3.1 KiB
YAML
89 lines
3.1 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags: ["v*"]
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag:
|
|
description: "Existing v* tag to publish (leave empty for a build-only run)"
|
|
required: false
|
|
default: ""
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
build:
|
|
name: Build Steam Frame ARM64 release
|
|
# Native aarch64 runner: no cross-toolchain or device sysroot needed.
|
|
# Debian 13 (trixie) ships FFmpeg 7, matching the SONAMEs present on the
|
|
# Steam Frame (libavcodec.so.61, libavutil.so.59, ...).
|
|
runs-on: ubuntu-24.04-arm
|
|
container: debian:trixie
|
|
steps:
|
|
- name: Install build dependencies
|
|
run: |
|
|
apt-get update
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
|
build-essential cmake ninja-build git ca-certificates pkg-config file \
|
|
glslang-tools libvulkan-dev \
|
|
libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev \
|
|
libpulse-dev libfreetype-dev libsmbclient-dev \
|
|
libx11-dev libxrandr-dev libxxf86vm-dev libgl-dev
|
|
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ inputs.tag || github.ref }}
|
|
fetch-depth: 1
|
|
|
|
- name: Check scripts
|
|
run: |
|
|
set -eux
|
|
sh -n tools/install.sh
|
|
bash -n tools/package-release.sh
|
|
bash -n tools/build.sh
|
|
|
|
- name: Build
|
|
run: bash tools/build.sh
|
|
|
|
- name: Package
|
|
run: |
|
|
set -eux
|
|
tag="${{ inputs.tag || github.ref_name }}"
|
|
bash tools/package-release.sh build pixelvr-linux-arm64.tar.gz "${tag}"
|
|
cp pixelvr-linux-arm64.tar.gz "pixelvr-linux-arm64-${tag}.tar.gz"
|
|
sha256sum pixelvr-linux-arm64.tar.gz > pixelvr-linux-arm64.tar.gz.sha256
|
|
sha256sum "pixelvr-linux-arm64-${tag}.tar.gz" > "pixelvr-linux-arm64-${tag}.tar.gz.sha256"
|
|
|
|
- name: Verify artifact
|
|
run: |
|
|
file build/bin/pixelvr
|
|
file build/bin/pixelvr | grep -q 'ARM aarch64'
|
|
tar -tzf pixelvr-linux-arm64.tar.gz | grep -q '^PixelVRPlayer/run.sh$'
|
|
tar -tzf pixelvr-linux-arm64.tar.gz | grep -q '^PixelVRPlayer/install.sh$'
|
|
tar -tzf pixelvr-linux-arm64.tar.gz | grep -q '^PixelVRPlayer/VERSION$'
|
|
tar -tzf pixelvr-linux-arm64.tar.gz | grep -q '/shaders/thumb.frag.spv$'
|
|
sha256sum -c pixelvr-linux-arm64.tar.gz.sha256
|
|
|
|
- name: Upload build artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: pixelvr-linux-arm64
|
|
path: |
|
|
pixelvr-linux-arm64.tar.gz
|
|
pixelvr-linux-arm64.tar.gz.sha256
|
|
pixelvr-linux-arm64-v*.tar.gz
|
|
|
|
- name: Publish GitHub release
|
|
if: startsWith(github.ref, 'refs/tags/v') || inputs.tag != ''
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
tag_name: ${{ inputs.tag || github.ref_name }}
|
|
generate_release_notes: true
|
|
files: |
|
|
pixelvr-linux-arm64.tar.gz
|
|
pixelvr-linux-arm64.tar.gz.sha256
|
|
pixelvr-linux-arm64-v*.tar.gz
|
|
pixelvr-linux-arm64-v*.tar.gz.sha256
|