Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 34 additions & 40 deletions .github/actions/download-pre-built-deps/buildspec.json
Original file line number Diff line number Diff line change
@@ -1,90 +1,84 @@
{
"version": "2025-05-16",
"version": "2025-06-08",
"baseUrl": "https://github.com/hyperion-project/hyperion-deps/releases/download",
"hashes": {
"debian_bullseye": {
"debian_bookworm": {
"amd64": {
"qt6": {
"debug": "afd7c86a68b27a338d79e1f4d99cac8dcfcaf1f2f2e5c37077a0f1c7028d8067",
"release": "399921e9bcf4929c0682ba435a2893c07d7a6a9f7ca25bbc7a3ad6f2a4a756aa"
"debug": "0e942549ea239c0b82125475511cc6f471e5ae6106eccd447b2657a77784aed0",
"release": "a815cf7ef9695b5cfbbf07bd1a4c65bd11fe7f1507a06ad36585c151b590fdf1"
}
},
"arm64": {
"qt6": {
"debug": "69ea079ad0d88811b57a13622bb12e77ee2dc3522060e56ffd3a6ee4209ed165",
"release": "7da05ed817fa3f8168391f3a1fec784d6a4934f71705b0106eb1dc2b127dd8ad"
"debug": "f78dd1fedbb93232473eca6cac9c33465b0245ef36fa4ddd4beba3cddaa0b525",
"release": "616d10f849e1f2335690ee3349a656a0c610c42f47f8c4c2f2534f944c7005f5"
}
},
"armv6": {
"qt6": {
"debug": "c5b8d6f2b8347b6f7a53e80530feec87d45196171709f257783fefb8d99b6470",
"release": "afc221f57eda8cca6929b67c5931358566886e1466741403ea622d60e2d7391b"
}
},
"armv7": {
"qt6": {
"debug": "dc1edff1b29b2fa2fa0fabea485740972392427a2276df34a293c58d2f431c0d",
"release": "c174c779a989a577ed19ede008d430c985f284295e6555e9a1df2d8c8a74c8f0"
"debug": "64a59a230d4450dbc34707c23178ed0da2f0dad8a5b6f1aa580e750c2bdedf0e",
"release": "965e26b678dd3222f2d8d9615bee7625253d4d7acd881b4c233f1b623179e4e1"
}
}
},
"debian_buster": {
"debian_bullseye": {
"amd64": {
"qt5": {
"debug": "3de38a5697be6ec50534e8c06eed362f6ec4a0a42270ab17f91442d2119f76bd",
"release": "899519e9bafeb8c36c67b840b8e825b4bb90ee4522f06aa89394077122a1b1e1"
"qt6": {
"debug": "d9e87d8321ec62db6eeee61177e4ca83d3e5485a9475da2633460d3dfb6d2001",
"release": "5207ae10c3351ba7b59c1d7a0ea33377996c3f8c035ad3861a6d7aa409c23476"
}
},
"arm64": {
"qt5": {
"debug": "3fd513e6250adf3e48f27b917bcc27bddd8717917c4ebdd3c89451b0775ca5d1",
"release": "e3d14ffa5fd73d99abd1777986a0f9fd4da03f6d91a4c4303f19476e05d3c8e0"
"qt6": {
"debug": "2e056a31fbc03221496d075c9c851779547730a6e2cc47cf7569b4790dfaef1c",
"release": "f715d0376a96f05d072b4e2d4c4e2cd4aa04790bbe9c06fe02ae83261f3bd233"
}
},
"armv6": {
"qt5": {
"debug": "5614cd248f288f111db60dd525b56a7267fc9378a6699439518b751c74c3502f",
"release": "42401c9003a5b5fee7e922f6f3fd925703a4084b0d6fcc8d71943f6f56ba357a"
"debug": "88ac40a89707ef146453162c683f0deced478d768c50d4cba95bf2ba246d9ec2",
"release": "58d9a3fa11564347fe46d4b2c308efc63c788cad1d9f0ccaeb6ab86997b6e29f"
}
},
"armv7": {
"qt5": {
"debug": "5c77e12246edc9642c65f2c9da7b8039c548d9b02c02c99e18cfdd59287ac984",
"release": "00a9432a373469fc14e24c36f475e3044677b474ffa47d6bf3078e596c7d70e4"
"qt6": {
"debug": "df56203dca02c2dd8724f9ad111e105af4f46efabac6aba3f8583d48cbd6c8a3",
"release": "70ea455ad0a5ddbe74296b35a2ff4e0fe7c2acb5af9f527a9548b72b56eaaeae"
}
}
},
"macos": {
"arm64": {
"qt5": {
"debug": "95e49f2765b519a76ec70e52d318ab025340420c2f2c83290b43859087da1a80",
"release": "15f1c0ff0a88aaef341733b238ea4359eef39fd36e5694d18aa46e85562eefb0"
},
"qt6": {
"debug": "091bd2812eb262cf3d54bdfd37b4b26d9cacafc183fc34b72614943bb4d394b5",
"release": "9158afa52a1e9c335c158b99725d9fd92871323e38b1c781bd4232a6f3dae5ee"
"debug": "b850180c333e07400d9e8d525b4322c38596d2d112f70e589f0023e756e65752",
"release": "4ba3d8da0802b7d2f658fe45dfc470143987cbfd107cf75bd267f1926352041f"
}
},
"x64": {
"qt5": {
"debug": "788c46cc50ba6932b8b4b4e0dca2eb18bc1edcb607822a6c2b5a5a8df3a5e592",
"release": "88a9562b441e983ac3b9ef226a5da3ea676a5d180ee0b97faa17337bd860b327"
},
"qt6": {
"debug": "1fcd76ee5de41516d7e6e5ceaa0be64fd303ace8fa0c1ab09b7f99003dcb0396",
"release": "7f8e27518e9d985a8c3dad30499d9e1910039a3401930c87d5c79f4b599cdabe"
"debug": "6c759d2b63fe26bdd013375f323ffe086d7e241b22067c88c8642cfb3beec8a9",
"release": "dcd7e8ffb7c32bfc78844afc1ac7eb1f35cb1eaf3b5392f1453f9ba5eefbcf51"
}
}
},
"windows": {
"arm64": {
"qt6": {
"release": "3a7423d7b305ad31526d7f72ac945b4e5325bbde3d23d47a7bb487ae67913933",
"relwithdebinfo": "d24a46ac82c612f242a21ac7caa44f7311ebaa4cf74bfefad438699d98fe261c"
"release": "74fe89d5513f7f98ad6d75518ad87415a970d0777d2c07b6e91e351a7ca28679",
"relwithdebinfo": "ae32edcd574a390e5ececc724e02850a036d2240a517ce61c18d7e3aed9f0881"
}
},
"x64": {
"qt5": {
"release": "a18e95f058622e2a8765da153e7ee7c6fe35a791a443cf4c8ad711b5b1fadde7",
"relwithdebinfo": "f1c8864e3ce5fe8e8a6c0794b6ff3e8259eebdac1ced86eb02ca17a7e009f26d"
},
"qt6": {
"release": "baa46cacb9b52f49d7263e72962e488ac755324bd4f133ab3c883cf77e27d889",
"relwithdebinfo": "f213f690adf200e2e03ee058b64769179f2ff8dfd9579ffe63074e14db6b87ba"
"release": "17ca40e4e38c7cf753a330f11912c3aef892413474bbe6523c4592e355cd95ea",
"relwithdebinfo": "f968de5a05eacb6cb24374879be81d01f67bc22ab00c4ee9c55ce5b9640918ca"
}
}
}
Expand Down
40 changes: 40 additions & 0 deletions .github/nightly.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# 🌙 Hyperion — Nightly Build (Development Version)

Would you like to try out new features before they are officially released?
Then the **Nightly Build** version of **Hyperion** is just right for you!

## What to Expect
- Nightly builds often include **bug fixes for known, reproducible issues**.
- However, they may also introduce **new, untested features** that could cause occasional stability problems.
- Please use this version with **caution** if you rely on a stable setup.

> [!WARNING]
> Note that changes to the configuration may be made which are not reverted easily. To prevent data loss or configuration conflicts, it's **strongly recommended** to:
> - **Export your existing configuration** via the [WebUI](https://docs.hyperion-project.org/user/Configuration.html#configuration-backup)
> - or the [Command Line Interface](https://docs.hyperion-project.org/user/advanced/CLI.html#command-line-interface) before upgrading.

## Installing

### 🐧 Linux

We recommend installing Linux nightly builds via our [APT/DNF repository](https://releases.hyperion-project.org/).
Start via [Linux -> Easy -> check "nighly version"](https://releases.hyperion-project.org).

Note: The `*.deb` and `*.tar.gz` packages attached here are based on **Debian Bullseye** and are tailored for the platform specified in the filename.

### 🪟 Windows
We offer two installers for **Windows 11**:

- `*-x64.exe` (for standard 64-bit systems)
- `*-arm64.exe` (for ARM-based systems)

### 🍏 macOS

Choose the version based on your architecture:

- `*-x86_64.dmg` — Requires **macOS 13.5 Ventura** or newer
- `*-arm64.dmg` — Requires **macOS 14.0 Sonoma** or newer

## Help Us Improve!

If you encounter any bugs or issues, please **let us know** — your feedback helps us make Hyperion better! :wink:
103 changes: 103 additions & 0 deletions .github/workflows/debian.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: Debian Builds

on:
# Reusable from push_pull.yml
workflow_call:
inputs:
codename:
type: string
description: The Debian codename
default: 'bullseye'
required: false
event_name:
type: string
description: The event name
default: ''
required: false
pull_request_number:
type: string
description: The corresponding PR number
default: ''
required: false
nightly:
type: boolean
description: Nightly build
default: false
required: false
publish:
type: boolean
description: Package publishing
default: false
required: false

jobs:

debian:
name: ${{ matrix.os.description }}
runs-on: ${{ matrix.os.architecture[0] == 'amd64' && 'ubuntu-24.04' || 'ubuntu-24.04-arm' }}
strategy:
fail-fast: false
matrix:
os: [
{ description: Linux (x86_64), architecture: [ amd64, linux/amd64 ], platform: x11 },
{ description: Raspberry Pi 1 & Zero 1 (armv6), architecture: [ armv6, linux/arm/v6 ], platform: rpi },
{ description: Raspberry Pi 2 (armv7), architecture: [ armv7, linux/arm/v7 ], platform: rpi },
{ description: Raspberry Pi 3/4/5 & Zero 2 (arm64), architecture: [ arm64, linux/arm64 ], platform: rpi }
]
target_lookup: [
{ 'arm64': 'arm64', 'armv6': 'armv6l', 'armv7': 'armv7l' }
]

steps:
- name: ⬇ Checkout
uses: actions/checkout@v4
with:
submodules: recursive

- name: 🔧 Prepare
shell: bash
run: |
tr -d '\n' < .version > temp && mv temp .version
if [[ "${{ inputs.event_name }}" == "pull_request" ]]; then
echo -n "+PR${{ inputs.pull_request_number }}" >> .version
elif [[ "${{ inputs.nightly }}" = true ]]; then
echo -n "+nightly$(date '+%Y%m%d')" >> .version
fi

- name: 💾 Download Pre-Build Dependencies
id: dependencies
uses: ./.github/actions/download-pre-built-deps
with:
os: debian_${{ inputs.codename }}
architecture: ${{ matrix.os.architecture[0] }}
qt_version: ${{ inputs.codename == 'bullseye' && matrix.os.architecture[0] == 'armv6' && '5' || '6' }}
build_type: ${{ inputs.event_name == 'pull_request' && 'debug' || 'release' }}

- name: 👷 Build ${{ env.HINT }}
shell: bash
run: |
mkdir deploy
docker run --rm --platform=${{ matrix.os.architecture[1] }} ${{ env.ENTRYPOINT }} \
-v "${{ github.workspace }}/deploy:/deploy" \
-v "${{ github.workspace }}:/source:rw" \
-v "/tmp/deps:/tmp/deps:rw" \
-w "/source" \
ghcr.io/hyperion-project/debian:${{ env.DOCKER_TAG }} \
/bin/bash -c "cmake --preset linux-${{ env.BUILD_TYPE }} ${{ steps.dependencies.outputs.cmakeArgs }} -DPLATFORM=${{ matrix.os.platform }} ${{ env.CPACK_SYSTEM_PROCESSOR }} &&
cmake --build --preset linux-${{ env.BUILD_TYPE }} --target package &&
cp /source/build/Hyperion-* /deploy/ 2>/dev/null"
env:
DOCKER_TAG: ${{ inputs.codename == 'bullseye' && matrix.os.architecture[0] == 'armv6' && inputs.codename || format('{0}-qt6', inputs.codename) }}
BUILD_TYPE: ${{ inputs.event_name == 'pull_request' && 'debug' || 'release' }}
ENTRYPOINT: ${{ matrix.os.architecture[0] != 'amd64' && '--entrypoint /usr/bin/env' || '' }}
CPACK_SYSTEM_PROCESSOR: ${{ matrix.os.architecture[0] != 'amd64' && format('-DCPACK_SYSTEM_PROCESSOR={0}', matrix.target_lookup[format('{0}', matrix.os.architecture[0])]) || '' }}
HINT: ${{ steps.dependencies.outputs.cmakeArgs != '' && '(with pre-built dependencies)' || '(full build)' }}

- name: 📦 Upload
if: ${{ inputs.publish || inputs.event_name == 'pull_request' }}
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.event_name == 'pull_request' && env.NAME || format('artifact-{0}', env.NAME) }}
path: ${{ inputs.event_name == 'pull_request' && 'deploy/*.tar.gz' || 'deploy/Hyperion-*' }}
env:
NAME: ${{ format('debian_{0}_{1}', inputs.codename, matrix.os.architecture[0]) }}
88 changes: 88 additions & 0 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: macOS Builds

on:
# Reusable from push_pull.yml
workflow_call:
inputs:
event_name:
type: string
description: The event name
default: ''
required: false
pull_request_number:
type: string
description: The corresponding PR number
default: ''
required: false
nightly:
type: boolean
description: Nightly build
default: false
required: false
publish:
type: boolean
description: Package publishing
default: false
required: false

jobs:

macos:
name: ${{ matrix.os.description }}
runs-on: ${{ matrix.os.architecture == 'arm64' && 'macos-14' || 'macos-13' }}
strategy:
fail-fast: false
matrix:
os: [
{ architecture: 'arm64', description: 'macOS 14 (arm64)' },
{ architecture: 'x64', description: 'macOS 13 (x64)' }
]

steps:
- name: ⬇ Checkout
uses: actions/checkout@v4
with:
submodules: recursive

- name: 🔧 Prepare
shell: bash
run: |
tr -d '\n' < .version > temp && mv temp .version
if [[ "${{ inputs.event_name }}" == "pull_request" ]]; then
echo -n "+PR${{ inputs.pull_request_number }}" >> .version
elif [[ "${{ inputs.nightly }}" = true ]]; then
echo -n "+nightly$(date '+%Y%m%d')" >> .version
fi

- name: 📥 Install dependencies
uses: tecolicom/actions-use-homebrew-tools@v1
with:
tools: qt@6 coreutils
key: ${{ runner.os }}-${{ matrix.os.architecture }}-homebrew-packages

- name: 💾 Download Pre-Build Dependencies
id: dependencies
uses: ./.github/actions/download-pre-built-deps
with:
os: 'macos'
architecture: ${{ matrix.os.architecture }}
build_type: ${{ inputs.event_name == 'pull_request' && 'debug' || 'release' }}

- name: 👷 Build ${{ env.HINT }}
shell: bash
run: |
# Build
cmake --preset macos-${{ env.BUILD_TYPE }} ${{ steps.dependencies.outputs.cmakeArgs }}
cmake --build --preset macos-${{ env.BUILD_TYPE }} --target package
env:
BUILD_TYPE: ${{ inputs.event_name == 'pull_request' && 'debug' || 'release' }}
HINT: ${{ steps.dependencies.outputs.cmakeArgs != '' && '(with pre-built dependencies)' || '(full build)' }}

- name: 📦 Upload
if: ${{ inputs.publish || inputs.event_name == 'pull_request' }}
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.event_name == 'pull_request' && env.NAME || format('artifact-{0}', env.NAME) }}
path: 'build/Hyperion-*'
env:
NAME: ${{ format('macOS_{0}', matrix.os.architecture) }}
Loading