Skip to content

CI (LG WebOS)

CI (LG WebOS) #18

Workflow file for this run

name: CI (LG WebOS)
on:
workflow_dispatch:
env:
CTEST_OUTPUT_ON_FAILURE: 1
jobs:
webos:
name: CI
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential \
cmake \
# EOF
- name: Install webOS CLI
run: |
npm install -g @webosose/ares-cli
- name: Get OpenGFX/OpenSFX/OpenMSX
run: |
mkdir -p "$GITHUB_WORKSPACE/os/webos/public/baseset"
cd "$GITHUB_WORKSPACE/os/webos/public/baseset"
curl -L https://cdn.openttd.org/opengfx-releases/7.1/opengfx-7.1-all.zip -o opengfx-all.zip
unzip opengfx-all.zip
tar xf opengfx-*.tar
rm -f opengfx-all.zip opengfx-*.tar
curl -L https://cdn.openttd.org/opensfx-releases/1.0.3/opensfx-1.0.3-all.zip -o opensfx-all.zip
unzip opensfx-all.zip
tar xf opensfx-*.tar
rm -f opensfx-all.zip opensfx-*.tar
curl -L https://cdn.openttd.org/openmsx-releases/0.4.2/openmsx-0.4.2-all.zip -o openmsx-all.zip
unzip openmsx-all.zip
tar xf openmsx-*.tar
rm -f openmsx-all.zip openmsx-*.tar
- name: Install webOS toolchain
run: |
curl -L https://github.com/openlgtv/buildroot-nc4/releases/latest/download/arm-webos-linux-gnueabi_sdk-buildroot.tar.gz -o webos.tar.gz
tar -xzf webos.tar.gz -C os/webos
rm -f webos.tar.gz
cd os/webos/arm-webos-linux-gnueabi_sdk-buildroot
./relocate-sdk.sh
- name: Install liblzma
run: |
git clone https://github.com/tukaani-project/xz.git
cd xz
mkdir build
cd build
cmake .. \
-DCMAKE_TOOLCHAIN_FILE="$GITHUB_WORKSPACE/os/webos/arm-webos-linux-gnueabi_sdk-buildroot/share/buildroot/toolchainfile.cmake" \
-DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/os/webos/arm-webos-linux-gnueabi_sdk-buildroot/arm-webos-linux-gnueabi/sysroot/usr"
make
make install
- name: Install FluidSynth
run: |
git clone https://github.com/FluidSynth/fluidsynth
cd fluidsynth
mkdir build
cd build
cmake .. \
-DCMAKE_TOOLCHAIN_FILE="$GITHUB_WORKSPACE/os/webos/arm-webos-linux-gnueabi_sdk-buildroot/share/buildroot/toolchainfile.cmake" \
-DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/os/webos/arm-webos-linux-gnueabi_sdk-buildroot/arm-webos-linux-gnueabi/sysroot/usr"
make
make install
- name: Build native tools
run: |
mkdir build-native
cd build-native
cmake .. -DOPTION_TOOLS_ONLY=ON
make -j
- name: Build OpenTTD
run: |
mkdir build
cd build
cmake .. \
-DCMAKE_TOOLCHAIN_FILE="$GITHUB_WORKSPACE/os/webos/arm-webos-linux-gnueabi_sdk-buildroot/share/buildroot/toolchainfile.cmake" \
-DHOST_BINARY_DIR="$GITHUB_WORKSPACE/build-native" \
-DCMAKE_BUILD_TYPE=Release \
-DWEBOS=ON \
-DOPTION_PACKAGE_DEPENDENCIES=ON
make -j5
- name: Package OpenTTD
run: |
cd os/webos
chmod +x package.sh
TOOLCHAIN_DIRECTORY=$GITHUB_WORKSPACE/os/webos/arm-webos-linux-gnueabi_sdk-buildroot ./package.sh
node scripts/manifest.js
ls
- name: Upload .ipk
uses: actions/upload-artifact@v4
with:
name: openttd
path: |
os/webos/*.ipk
os/webos/manifest.json