Repository navigation
Add Linux release build path for artifacts #4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build artifacts | |
| on: | |
| push: | |
| branches: [master] | |
| pull_request: | |
| workflow_dispatch: | |
| inputs: | |
| webos_toolchain_archive_url: | |
| description: "Optional tar archive containing build/webos-sdk and Qt webOS prefixes" | |
| required: false | |
| type: string | |
| jobs: | |
| webos-ipk: | |
| name: webOS IPK | |
| runs-on: ubuntu-24.04 | |
| if: ${{ vars.WEBOS_TOOLCHAIN_ARCHIVE_URL != '' || (github.event_name == 'workflow_dispatch' && github.event.inputs.webos_toolchain_archive_url != '') }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: actions/cache@v4 | |
| with: | |
| path: | | |
| build/webos-sdk | |
| build/qt6-611-host-install | |
| build/qt6-611-target-static-install | |
| build/qt6-611-target-install | |
| build/webos-thirdparty-build | |
| build/third_party | |
| .ccache | |
| mpv/build/webos-libmpv | |
| key: webos-${{ runner.os }}-${{ hashFiles('mpv/meson.build', 'build-ipk.sh', 'tools/webos-native/**') }} | |
| restore-keys: | | |
| webos-${{ runner.os }}- | |
| - name: Install host tools | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y ccache cmake curl git jq meson ninja-build nodejs npm patchelf pkg-config rustup | |
| - name: Restore webOS toolchain archive | |
| env: | |
| INPUT_URL: ${{ github.event.inputs.webos_toolchain_archive_url }} | |
| VAR_URL: ${{ vars.WEBOS_TOOLCHAIN_ARCHIVE_URL }} | |
| run: | | |
| url="${INPUT_URL:-$VAR_URL}" | |
| if [ -n "$url" ] && [ ! -x build/webos-sdk/arm-webos-linux-gnueabi_sdk-buildroot/bin/arm-webos-linux-gnueabi-gcc ]; then | |
| curl -L --fail "$url" | tar xz | |
| fi | |
| test -x build/webos-sdk/arm-webos-linux-gnueabi_sdk-buildroot/bin/arm-webos-linux-gnueabi-gcc | |
| test -d build/qt6-611-host-install | |
| test -d build/qt6-611-target-static-install -o -d build/qt6-611-target-install | |
| - name: Build IPK | |
| run: bash build-ipk.sh | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: jellyfin-native-webos-ipk | |
| path: build/*.ipk | |
| linux-appimage: | |
| name: Linux AppImage | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: "6.11.0" | |
| modules: qtimageformats | |
| cache: true | |
| - name: Install build dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| ccache cmake curl fuse git libarchive-dev libasound2-dev libass-dev \ | |
| libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libbluray-dev \ | |
| libdrm-dev libegl1-mesa-dev libfontconfig-dev libfreetype-dev libjpeg-dev \ | |
| liblua5.2-dev libpipewire-0.3-dev libplacebo-dev libpulse-dev libswresample-dev \ | |
| libswscale-dev libuchardet-dev libva-dev libwayland-dev libxkbcommon-dev \ | |
| libvulkan-dev meson ninja-build pkg-config wayland-protocols zlib1g-dev | |
| - uses: actions/cache@v4 | |
| with: | |
| path: | | |
| .ccache | |
| build/linux-release | |
| build/appimage | |
| key: linux-${{ runner.os }}-${{ hashFiles('mpv/meson.build', 'tools/build-linux-release.sh', 'CMakeLists.txt') }} | |
| restore-keys: | | |
| linux-${{ runner.os }}- | |
| - name: Build host app | |
| run: bash tools/build-linux-release.sh | |
| - name: Package AppImage | |
| run: bash tools/package-appimage.sh | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: jellyfin-native-linux-appimage | |
| path: dist/*.AppImage | |
| macos-dmg: | |
| name: macOS DMG | |
| runs-on: macos-14 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: "6.11.0" | |
| modules: qtimageformats | |
| cache: true | |
| - name: Install build dependencies | |
| run: | | |
| brew update | |
| brew install ccache cmake create-dmg ffmpeg libarchive libass libbluray libplacebo luajit meson mujs ninja pkg-config rubberband uchardet | |
| - name: Make Homebrew dependencies discoverable | |
| run: | | |
| pkg_paths="$(for dir in "$(brew --prefix)"/opt/*/lib/pkgconfig "$(brew --prefix)"/opt/*/share/pkgconfig; do [ -d "$dir" ] && printf '%s:' "$dir"; done)" | |
| pkg_paths="${pkg_paths%:}" | |
| echo "PKG_CONFIG_PATH=$(brew --prefix)/lib/pkgconfig:$(brew --prefix)/share/pkgconfig:$pkg_paths" >> "$GITHUB_ENV" | |
| echo "LDFLAGS=-L$(brew --prefix)/lib -L$(brew --prefix libarchive)/lib" >> "$GITHUB_ENV" | |
| echo "CPPFLAGS=-I$(brew --prefix)/include -I$(brew --prefix libarchive)/include" >> "$GITHUB_ENV" | |
| - uses: actions/cache@v4 | |
| with: | |
| path: | | |
| build/macos | |
| ~/Library/Caches/ccache | |
| key: macos-${{ runner.os }}-${{ hashFiles('mpv/meson.build', 'tools/build-macos.sh', 'CMakeLists.txt') }} | |
| restore-keys: | | |
| macos-${{ runner.os }}- | |
| - name: Build macOS app | |
| run: bash tools/build-macos.sh | |
| - name: Package DMG | |
| run: bash tools/package-macos-dmg.sh | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: jellyfin-native-macos-dmg | |
| path: dist/*.dmg |