Fix live activity crash #373
This file contains 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 wiliwili | |
on: | |
push: | |
branches: | |
- yoga | |
- dev | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
ssh_darwin: | |
description: 'SSH connection to Darwin' | |
required: false | |
default: 'false' | |
ssh_ubuntu: | |
description: 'SSH connection to Ubuntu' | |
required: false | |
default: 'false' | |
arm_flatpak: | |
description: 'build flatpak (aarch64)' | |
required: false | |
default: 'false' | |
universal_macos: | |
description: 'build macos (universal)' | |
required: false | |
default: 'false' | |
release: | |
description: 'Push a new release' | |
required: false | |
default: 'false' | |
version: | |
description: 'Version' | |
required: false | |
default: '0.0.0' | |
jobs: | |
version: | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.info.outputs.version }} | |
standard_version: ${{ steps.info.outputs.standard_version }} | |
DIST_EXE: ${{ steps.info.outputs.DIST_EXE }} | |
DIST_UWP: ${{ steps.info.outputs.DIST_UWP }} | |
DIST_NRO: ${{ steps.info.outputs.DIST_NRO }} | |
DIST_DMG_PREFIX: ${{ steps.info.outputs.DIST_DMG_PREFIX }} | |
DIST_INTEL_DMG: ${{ steps.info.outputs.DIST_INTEL_DMG }} | |
DIST_ARM_DMG: ${{ steps.info.outputs.DIST_ARM_DMG }} | |
DIST_UNIVERSAL_DMG: ${{ steps.info.outputs.DIST_UNIVERSAL_DMG }} | |
DIST_FLATPAK_X86_64: ${{ steps.info.outputs.DIST_FLATPAK_X86_64 }} | |
DIST_FLATPAK_AARCH64_GL: ${{ steps.info.outputs.DIST_FLATPAK_AARCH64_GL }} | |
DIST_FLATPAK_AARCH64_GLES2: ${{ steps.info.outputs.DIST_FLATPAK_AARCH64_GLES2 }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.repository }} | |
- name: Debug version | |
run: | | |
export VERSION=`git rev-parse --short HEAD` | |
echo "VERSION=${VERSION}" >> $GITHUB_ENV | |
- name: Release version | |
if: github.event.inputs.release == 'true' && github.event.inputs.release != 'false' && !cancelled() | |
run: | | |
export VERSION="${{ github.event.inputs.version }}" | |
echo "VERSION=${VERSION}" >> $GITHUB_ENV | |
- name: Version | |
id: info | |
env: | |
VERSION: ${{ env.VERSION }} | |
run: | | |
echo "version=${VERSION}" >> $GITHUB_OUTPUT | |
echo "DIST_EXE=wiliwili-Windows-x64-${VERSION}" >> $GITHUB_OUTPUT | |
echo "DIST_UWP=wiliwili-windows-x64-uwp-${VERSION}" >> $GITHUB_OUTPUT | |
echo "DIST_NRO=wiliwili-NintendoSwitch-${VERSION}" >> $GITHUB_OUTPUT | |
echo "DIST_DMG_PREFIX=wiliwili-macOS" >> $GITHUB_OUTPUT | |
echo "DIST_INTEL_DMG=wiliwili-macOS-IntelChip-${VERSION}" >> $GITHUB_OUTPUT | |
echo "DIST_ARM_DMG=wiliwili-macOS-AppleSilicon-${VERSION}" >> $GITHUB_OUTPUT | |
echo "DIST_UNIVERSAL_DMG=wiliwili-macOS-Universal-${VERSION}" >> $GITHUB_OUTPUT | |
echo "DIST_FLATPAK_X86_64=wiliwili-Linux-${VERSION}-x86_64" >> $GITHUB_OUTPUT | |
echo "DIST_FLATPAK_AARCH64_GL=wiliwili-Linux-${VERSION}-gl-aarch64" >> $GITHUB_OUTPUT | |
echo "DIST_FLATPAK_AARCH64_GLES2=wiliwili-Linux-${VERSION}-gles2-aarch64" >> $GITHUB_OUTPUT | |
echo $VERSION | |
echo "${{ github.event.inputs.version }}" | |
release: | |
needs: [ build-win-x64, build-switch, build-macos, build-flatpak, version ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/download-artifact@v3 | |
- name: Rename Flatpak | |
run: | | |
mv ${{ needs.version.outputs.DIST_FLATPAK_X86_64 }}/wiliwili-Linux-${{ needs.version.outputs.version }}.flatpak \ | |
${{ needs.version.outputs.DIST_FLATPAK_X86_64 }}/${{ needs.version.outputs.DIST_FLATPAK_X86_64 }}.flatpak | |
- name: Upload Release | |
if: github.event.inputs.release == 'true' && !cancelled() | |
uses: ncipollo/release-action@v1 | |
with: | |
name: wiliwili ${{ github.event.inputs.version }} | |
tag: ${{ github.event.inputs.version }} | |
omitBodyDuringUpdate: true | |
body: This release is built by github-action. | |
token: ${{ secrets.GITHUB_TOKEN }} | |
allowUpdates: true | |
artifacts: > | |
${{ needs.version.outputs.DIST_EXE }}/${{ needs.version.outputs.DIST_EXE }}.tar.gz | |
${{ needs.version.outputs.DIST_NRO }}/${{ needs.version.outputs.DIST_NRO }}.tar.gz | |
${{ needs.version.outputs.DIST_INTEL_DMG }}/${{ needs.version.outputs.DIST_INTEL_DMG }}.dmg | |
${{ needs.version.outputs.DIST_ARM_DMG }}/${{ needs.version.outputs.DIST_ARM_DMG }}.dmg | |
${{ needs.version.outputs.DIST_UNIVERSAL_DMG }}/${{ needs.version.outputs.DIST_UNIVERSAL_DMG }}.dmg | |
${{ needs.version.outputs.DIST_FLATPAK_X86_64 }}/${{ needs.version.outputs.DIST_FLATPAK_X86_64 }}.flatpak | |
build-win-x64: | |
needs: [ version ] | |
runs-on: windows-2022 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.repository }} | |
submodules: 'recursive' | |
fetch-depth: 0 | |
- name: Update gamepad db | |
run: | | |
cmake -P library/borealis/library/lib/extern/glfw//CMake/GenerateMappings.cmake library/borealis/library/lib/extern/glfw//src/mappings.h.in library/borealis/library/lib/extern/glfw//src/mappings.h | |
- name: Install dependency | |
uses: msys2/setup-msys2@v2 | |
with: | |
# update: true | |
install: >- | |
mingw-w64-x86_64-gcc | |
mingw-w64-x86_64-cmake | |
mingw-w64-x86_64-make | |
mingw-w64-x86_64-mpv | |
mingw-w64-x86_64-libwebp | |
git | |
p7zip | |
- name: Build | |
shell: msys2 {0} | |
id: compile | |
run: | | |
mkdir -p build && pushd build | |
cmake .. -G "MinGW Makefiles" -DPLATFORM_DESKTOP=ON -DWIN32_TERMINAL=OFF -DCMAKE_BUILD_TYPE=Release | |
mingw32-make wiliwili -j4 | |
strip wiliwili.exe | |
mkdir wiliwili && mv wiliwili.exe wiliwili && mv resources wiliwili | |
for i in {libwinpthread-1,libgcc_s_seh-1,zlib1,libssh2-1,libstdc++-6,libcrypto-3-x64,libwebp-7,libsharpyuv-0}; do | |
cp /mingw64/bin/${i}.dll wiliwili | |
done | |
wget https://github.com/xfangfang/wiliwili/releases/download/v0.1.0/mpv-dev-x86_64-20221204-git-4574dd5.7z -O mpv.7z | |
7z e mpv.7z -ompv | |
cp mpv/mpv-2.dll wiliwili/libmpv-2.dll | |
tar -czvf ../${{ needs.version.outputs.DIST_EXE }}.tar.gz wiliwili | |
- name: Upload dist | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ needs.version.outputs.DIST_EXE }} | |
path: "${{ needs.version.outputs.DIST_EXE }}.tar.gz" | |
build-win-uwp: | |
needs: [ version ] | |
runs-on: windows-2022 | |
steps: | |
- name: Setup Windows 10 SDK | |
uses: GuillaumeFalourd/setup-windows10-sdk-action@v1.11 | |
with: | |
sdk-version: 20348 | |
- name: Install NSIS | |
shell: powershell | |
run: | | |
Invoke-Expression (Invoke-Webrequest 'https://xmake.io/psget.text' -UseBasicParsing).Content | |
xmake --version | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: pre-repo | |
shell: powershell | |
run: | | |
$env:path+=";C:\Users\$($env:username)\xmake" | |
xmake repo -a local https://github.com/zeromake/xrepo.git | |
mkdir -p dist | |
mkdir -p build/xrepo | |
cd build/xrepo | |
git clone https://github.com/xfangfang/borealis.git -b wiliwili --depth=1 | |
git clone https://github.com/xfangfang/libpdr.git -b master --depth=1 | |
cd ../../ | |
- name: build | |
shell: powershell | |
env: | |
VERSION: ${{ needs.version.outputs.VERSION }} | |
run: | | |
$env:path+=";C:\Users\$($env:username)\xmake" | |
xmake f -c -y --sw=y --winrt=y --window=sdl --driver=d3d11 | |
xmake build wiliwili | |
cp winrt/key.pfx build/ | |
cp winrt/docs/key.pdf build/key.pdf | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ needs.version.outputs.DIST_UWP }} | |
path: | | |
build/wiliwili.msix | |
build/key.pfx | |
build/key.pdf | |
build-switch: | |
needs: [ version ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.repository }} | |
submodules: 'recursive' | |
fetch-depth: 0 | |
- name: Build | |
id: compile | |
run: | | |
wget https://github.com/xfangfang/wiliwili/releases/download/v0.1.0/nsp_forwarder.nsp -P resources | |
docker run --rm -v $(pwd):/data devkitpro/devkita64:20230622 sh -c "/data/scripts/build_switch.sh" | |
cd cmake-build-switch | |
tar -czvf ../${{ needs.version.outputs.DIST_NRO }}.tar.gz wiliwili.nro | |
- name: Upload dist | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ needs.version.outputs.DIST_NRO }} | |
path: "${{ needs.version.outputs.DIST_NRO }}.tar.gz" | |
build-macos: | |
needs: [ version ] | |
runs-on: macos-11 | |
strategy: | |
matrix: | |
arch: [ IntelChip, AppleSilicon, Universal ] | |
# Don't fail the whole workflow if one architecture fails | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.repository }} | |
submodules: 'recursive' | |
fetch-depth: 0 | |
- name: install deps | |
if: matrix.arch != 'Universal' || ( matrix.arch == 'Universal' && github.event.inputs.universal_macos == 'true') | |
run: | | |
brew install create-dmg dylibbundler webp boost | |
brew tap xfangfang/wiliwili | |
brew install -v mpv-wiliwili | |
- name: SSH connection to Actions | |
uses: P3TERX/ssh2actions@v1.0.0 | |
if: (github.event.inputs.ssh_darwin == 'true' && github.event.inputs.ssh_darwin != 'false') || contains(github.event.action, 'ssh_darwin') | |
env: | |
TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} | |
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} | |
- name: Update gamepad mappings | |
if: matrix.arch != 'Universal' || ( matrix.arch == 'Universal' && github.event.inputs.universal_macos == 'true') | |
id: gamepad | |
run: | | |
BRLS_GLFW="library/borealis/library/lib/extern/glfw" | |
cmake -P ${BRLS_GLFW}/CMake/GenerateMappings.cmake ${BRLS_GLFW}/src/mappings.h.in ${BRLS_GLFW}/src/mappings.h | |
- name: Build | |
if: matrix.arch != 'Universal' || ( matrix.arch == 'Universal' && github.event.inputs.universal_macos == 'true') | |
id: compile | |
run: | | |
cmake -B build -DPLATFORM_DESKTOP=ON -DCMAKE_BUILD_TYPE=Release -DMAC_${{ matrix.arch }}=ON -DMAC_DOWNLOAD_DYLIB=ON | |
make -C build wiliwili.app -j$(sysctl -n hw.ncpu) | |
- name: Name | |
if: matrix.arch != 'Universal' || ( matrix.arch == 'Universal' && github.event.inputs.universal_macos == 'true') | |
id: name | |
run: | | |
echo "DMG=${{ needs.version.outputs.DIST_DMG_PREFIX }}-${{ matrix.arch }}-${{ needs.version.outputs.version }}" >> $GITHUB_OUTPUT | |
- name: Bundle | |
if: matrix.arch != 'Universal' || ( matrix.arch == 'Universal' && github.event.inputs.universal_macos == 'true') | |
id: bundle | |
run: | | |
mkdir -p dist | |
mv build/wiliwili.app dist/ | |
cp ./scripts/mac/readme.txt dist/readme.txt | |
create-dmg --window-pos 200 120 --window-size 800 400 \ | |
--icon-size 100 --icon "wiliwili.app" 200 190 \ | |
--icon "readme.txt" 400 100 --hide-extension "wiliwili.app" \ | |
--app-drop-link 600 185 --volicon ./scripts/mac/dmg.icns \ | |
--volname "wiliwili (${{ needs.version.outputs.version }})" ${{ steps.name.outputs.DMG }}.dmg "dist/" | |
- name: Upload dist | |
if: matrix.arch != 'Universal' || ( matrix.arch == 'Universal' && github.event.inputs.universal_macos == 'true') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ steps.name.outputs.DMG }} | |
path: "${{ steps.name.outputs.DMG }}.dmg" | |
build-flatpak: | |
needs: [ version ] | |
runs-on: ubuntu-latest | |
container: | |
image: bilelmoussaoui/flatpak-github-actions:freedesktop-22.08 | |
options: --privileged | |
strategy: | |
matrix: | |
arch: [ x86_64, aarch64 ] | |
driver: [ gl, gles2 ] | |
exclude: | |
- arch: x86_64 | |
driver: gles2 | |
# Don't fail the whole workflow if one architecture fails | |
fail-fast: false | |
env: | |
FLATPAK_NAME: wiliwili-Linux-${{ needs.version.outputs.version }}.flatpak | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
if: matrix.arch == 'x86_64' || ( matrix.arch == 'aarch64' && github.event.inputs.arm_flatpak == 'true') | |
with: | |
repository: ${{ github.repository }} | |
submodules: 'recursive' | |
fetch-depth: 0 | |
- name: Add OpenGL ES 2.0 build option | |
if: matrix.driver == 'gles2' && ( matrix.arch == 'x86_64' || ( matrix.arch == 'aarch64' && github.event.inputs.arm_flatpak == 'true' ) ) | |
run: | | |
sed -i "29i \ - '-DUSE_GLES2=ON'" .flatpak-manifest.yml | |
- name: Rename package | |
if: matrix.arch == 'aarch64' | |
run: | | |
echo "FLATPAK_NAME=wiliwili-Linux-${{ needs.version.outputs.version }}-${{ matrix.driver }}.flatpak" >> $GITHUB_ENV | |
- name: Install deps | |
id: dep | |
if: matrix.arch == 'x86_64' || ( matrix.arch == 'aarch64' && github.event.inputs.arm_flatpak == 'true') | |
run: | | |
dnf -y install docker cmake | |
BRLS_GLFW="library/borealis/library/lib/extern/glfw/" | |
cmake -P ${BRLS_GLFW}/CMake/GenerateMappings.cmake ${BRLS_GLFW}/src/mappings.h.in ${BRLS_GLFW}/src/mappings.h | |
echo "FLATPAK_NAME=${FLATPAK_NAME}" >> $GITHUB_OUTPUT | |
echo ${FLATPAK_NAME} | |
- name: Set up QEMU | |
id: qemu | |
if: matrix.arch == 'aarch64' && github.event.inputs.arm_flatpak == 'true' | |
uses: docker/setup-qemu-action@v2 | |
with: | |
platforms: arm64 | |
- uses: flatpak/flatpak-github-actions/flatpak-builder@v5 | |
if: matrix.arch == 'x86_64' || ( matrix.arch == 'aarch64' && github.event.inputs.arm_flatpak == 'true') | |
with: | |
bundle: ${{ steps.dep.outputs.FLATPAK_NAME }} | |
manifest-path: .flatpak-manifest.yml | |
cache-key: flatpak-builder-${{ matrix.arch }} | |
arch: ${{ matrix.arch }} |