Skip to content

Build

Build #92

Workflow file for this run

name: Build
on:
push:
branches: [stable]
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
HSC_OFFICIAL_BUILD: 1
jobs:
windows:
name: Build Windows latest
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo
- uses: dtolnay/rust-toolchain@stable
- name: Build Hyperspeedcube
run: cargo build --release
- name: Upload release
uses: actions/upload-artifact@v4
with:
name: hyperspeedcube_win64
path: target/release/hyperspeedcube.exe
linux:
name: Build Linux latest
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo
- uses: dtolnay/rust-toolchain@stable
- name: Update apt
run: sudo apt update
- name: Install egui dependencies
run: sudo apt install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev
- name: Install Rusty File Dialog dependencies
run: sudo apt install libgtk-3-dev
- name: Install XKB/XCB dev dependencies
run: sudo apt install libxkbcommon-dev libxkbcommon-x11-dev libxcb1-dev libxcb-xinput-dev
- name: Build Hyperspeedcube
run: cargo build --release
- name: Make tarball
run: tar -czf hyperspeedcube_linux.tar.gz -C target/release hyperspeedcube
- name: Upload release
uses: actions/upload-artifact@v4
with:
name: hyperspeedcube_linux
path: hyperspeedcube_linux.tar.gz
macos:
name: Build macOS latest
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-apple-darwin
- name: Install cargo-bundle
uses: baptiste0928/cargo-install@v3
with:
crate: cargo-bundle
version: latest
- name: Build Hyperspeedcube (arm64)
run: cargo build --release
- name: Build Hyperspeedcube (x86_64)
run: cargo build --release --target=x86_64-apple-darwin
- name: Merge universal binary
run: lipo -create -output target/release/hyperspeedcube target/x86_64-apple-darwin/release/hyperspeedcube target/release/hyperspeedcube
- name: Make app
run: CARGO_BUNDLE_SKIP_BUILD= cargo bundle --release --package hyperspeedcube
- name: Make tarball
run: tar -czf hyperspeedcube_macos.tar.gz -C target/release/bundle/osx Hyperspeedcube.app
- name: Upload app
uses: actions/upload-artifact@v4
with:
name: hyperspeedcube_macos
path: hyperspeedcube_macos.tar.gz