Skip to content

Add AltStore repo reference to README and browser terminal #17

Add AltStore repo reference to README and browser terminal

Add AltStore repo reference to README and browser terminal #17

Workflow file for this run

name: CI
on:
push:
branches:
- main
- public-main
pull_request:
jobs:
build-linux:
name: Build Linux core
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Install native build dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang cmake ninja-build libc++-dev libc++abi-dev
- name: Build Linux-compatible projects
run: |
dotnet build Podish.Cli/Podish.Cli.csproj -c Debug
dotnet build Podish.Core.Native/Podish.Core.Native.csproj -c Debug
dotnet build Podish.PjdFs/Podish.PjdFs.csproj -c Debug
dotnet build Fiberish.Tests/Fiberish.Tests.csproj -c Debug
dotnet build Fiberish.SilkFS.Tests/Fiberish.SilkFS.Tests.csproj -c Debug
dotnet build Podish.Pulse.Tests/Podish.Pulse.Tests.csproj -c Debug
dotnet build Podish.Wayland.Tests/Podish.Wayland.Tests.csproj -c Debug
build-windows:
name: Build Windows PodishCli
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Build Windows-compatible projects
run: |
dotnet build Podish.Cli/Podish.Cli.csproj -c Debug -r win-x64
dotnet build Fiberish.X86/Fiberish.X86.csproj -c Debug -r win-x64
shell: pwsh
build-macos:
name: Build macOS full solution
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Install native build dependencies
run: |
brew install cmake ninja
- name: Install WebAssembly workload
run: dotnet workload install wasm-tools
- name: Resolve browser-wasm toolchain
shell: bash
run: |
set -euo pipefail
dotnet_root="${DOTNET_ROOT:-}"
if [[ -z "${dotnet_root}" ]]; then
dotnet_root="$(dirname "$(command -v dotnet)")"
fi
if [[ ! -d "$dotnet_root/packs" ]]; then
echo "Failed to locate dotnet packs under $dotnet_root/packs" >&2
echo "command -v dotnet => $(command -v dotnet)" >&2
echo "DOTNET_ROOT => ${DOTNET_ROOT:-<unset>}" >&2
exit 1
fi
emscripten_toolchain="$(find "$dotnet_root/packs" -path '*/tools/emscripten/cmake/Modules/Platform/Emscripten.cmake' -print -quit)"
browser_node="$(find "$dotnet_root/packs" -path '*/tools/bin/node' -print | grep 'Microsoft.NET.Runtime.Emscripten.*Node' | head -n 1)"
if [[ -z "${emscripten_toolchain:-}" ]]; then
echo "Failed to locate Emscripten.cmake under $dotnet_root/packs" >&2
exit 1
fi
if [[ -z "${browser_node:-}" ]]; then
echo "Failed to locate the Emscripten Node runtime under $dotnet_root/packs" >&2
exit 1
fi
emsdk_tools_root="$(cd "$(dirname "$emscripten_toolchain")/../../../../" && pwd)"
ninja_bin="$(command -v ninja || true)"
if [[ -z "${ninja_bin:-}" ]]; then
echo "Failed to locate ninja in PATH after brew install" >&2
exit 1
fi
echo "EMSDK_PATH=$emsdk_tools_root" >> "$GITHUB_ENV"
echo "DOTNET_EMSCRIPTEN_LLVM_ROOT=$emsdk_tools_root/bin" >> "$GITHUB_ENV"
echo "DOTNET_EMSCRIPTEN_BINARYEN_ROOT=$emsdk_tools_root" >> "$GITHUB_ENV"
echo "DOTNET_EMSCRIPTEN_NODE_JS=$browser_node" >> "$GITHUB_ENV"
echo "EM_CACHE=$RUNNER_TEMP/emscripten-cache" >> "$GITHUB_ENV"
echo "FROZEN_CACHE=" >> "$GITHUB_ENV"
echo "EMSCRIPTEN_TOOLCHAIN_FILE=$emscripten_toolchain" >> "$GITHUB_ENV"
echo "BROWSER_WASM_NODE_EXECUTABLE=$browser_node" >> "$GITHUB_ENV"
echo "$emsdk_tools_root/emscripten" >> "$GITHUB_PATH"
echo "$emsdk_tools_root/bin" >> "$GITHUB_PATH"
echo "$(dirname "$browser_node")" >> "$GITHUB_PATH"
echo "$(dirname "$ninja_bin")" >> "$GITHUB_PATH"
- name: Prepare Emscripten cache
shell: bash
run: |
set -euo pipefail
mkdir -p "$EM_CACHE"
- name: Build full solution
run: dotnet build Podish.slnx -c Debug -p:EmscriptenToolchainFile="$EMSCRIPTEN_TOOLCHAIN_FILE" -p:BrowserWasmNodeExecutable="$BROWSER_WASM_NODE_EXECUTABLE"