@ -1,11 +1,16 @@
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
# SPDX-FileCopyrightText: 2024 suyu Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later
name : 'yuzu verify'
# Actions Documentation: https://forgejo.org/docs/next/user/actions/#list-of-tasks-in-a-repository
name : 'suyu verify'
on :
pull_request:
branches : [ master ]
branches : [ "dev" ]
push:
branches : [ "dev" ]
env:
PR_NUMBER : pr${{ github.event.number }}
@ -14,17 +19,17 @@ jobs:
name : 'verify format'
runs-on : ubuntu-latest
steps:
- uses : actions/checkout@v3
- uses : https://code.forgejo.org/ actions/checkout@v3
with:
submodules : false
- name : set up JDK 17
uses : actions/setup-java@v3
uses : https://github.com/ actions/setup-java@v3
with:
java-version : '17'
distribution : 'temurin'
- name : 'Verify Formatting'
run : bash -ex ./.ci/scripts/format/script.sh
build :
build -linux :
name : 'test build'
needs : format
runs-on : ubuntu-latest
@ -39,15 +44,15 @@ jobs:
- type : windows
image : linux-mingw
container:
image : yuzuem u/build-environments:${{ matrix.image }}
image : fijx u/build-environments:${{ matrix.image }}
options : -u 1001
steps:
- uses : actions/checkout@v3
- uses : https://code.forgejo.org/ actions/checkout@v3
with:
submodules : recursive
fetch-depth : 0
- name : Set up cache
uses : actions/cache@v3
uses : https://code.forgejo.org/ actions/cache@v3
id : ccache-restore
with:
path : ~/.ccache
@ -66,102 +71,102 @@ jobs:
env:
NO_SOURCE_PACK : "YES"
- name : Upload
uses : actions/upload-artifact@v3
uses : https://code.forgejo.org/ actions/upload-artifact@v3
with:
name : ${{ matrix.type }}
path : artifacts/
build-mac:
name : 'test build (macos)'
needs : format
runs-on : macos-14
steps:
- uses : actions/checkout@v3
with:
submodules : recursive
fetch-depth : 0
- name : Install dependencies
run : |
brew install autoconf automake boost ccache ffmpeg fmt glslang hidapi libtool libusb lz4 ninja nlohmann-json openssl pkg-config qt@5 sdl2 speexdsp zlib zlib zstd
- name : Build
run : |
mkdir build
cd build
export Qt5_DIR="$(brew --prefix qt@5)/lib/cmake"
cmake .. -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSUYU_USE_BUNDLED_VCPKG=OFF -DSUYU_TESTS=OFF -DENABLE_WEB_SERVICE=OFF -DENABLE_LIBUSB=OFF
ninja
build-msvc:
name : 'test build (windows, msvc)'
needs : format
runs-on : windows-2022
steps:
- uses : actions/checkout@v3
with:
submodules : recursive
fetch-depth : 0
- name : Set up cache
uses : actions/cache@v3
with:
path : ~/.buildcache
key : ${{ runner.os }}-msvc-${{ github.sha }}
restore-keys : |
${{ runner.os }}-msvc-
- name : Install dependencies
shell : pwsh
run : |
$ErrorActionPreference = "Stop"
$BuildCacheVer = "v0.28.4"
$File = "buildcache-windows.zip"
$Uri = "https://github.com/mbitsnbites/buildcache/releases/download/$BuildCacheVer/$File"
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile($Uri, $File)
7z x $File
$CurrentDir = Convert-Path .
echo "$CurrentDir/buildcache/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name : Install Vulkan SDK
shell : pwsh
run : .\.ci\scripts\windows\install-vulkan-sdk.ps1
- name : Set up MSVC
uses : ilammy/msvc-dev-cmd@v1
- name : Configure
env:
CC : cl.exe
CXX : cl.exe
run : |
glslangValidator --version
mkdir build
cmake . -B build -GNinja -DCMAKE_TOOLCHAIN_FILE="CMakeModules/MSVCCache.cmake" -DUSE_CCACHE=ON -DSUYU_USE_BUNDLED_QT=1 -DSUYU_USE_BUNDLED_SDL2=1 -DSUYU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DSUYU_ENABLE_COMPATIBILITY_REPORTING=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DGIT_BRANCH=pr-verify -DSUYU_CRASH_DUMPS=ON
- name : Build
run : cmake --build build
- name : Cache Summary
run : buildcache -s
- name : Pack
shell : pwsh
run : .\.ci\scripts\windows\upload.ps1
- name : Upload
uses : actions/upload-artifact@v3
with:
name : msvc
path : artifacts/
- name : Upload EXE
uses : actions/upload-artifact@v3
with:
name : ${{ env.INDIVIDUAL_EXE }}
path : ${{ env.INDIVIDUAL_EXE }}
# build-mac:
# name: 'test build (macos)'
# needs: format
# runs-on: macos-14
# steps:
# - uses: https://code.forgejo.org/ actions/checkout@v3
# with:
# submodules: recursive
# fetch-depth: 0
# - name: Install dependencies
# run: |
# brew install autoconf automake boost ccache ffmpeg fmt glslang hidapi libtool libusb lz4 ninja nlohmann-json openssl pkg-config qt@5 sdl2 speexdsp zlib zlib zstd
# - name: Build
# run: |
# mkdir build
# cd build
# export Qt5_DIR="$(brew --prefix qt@5)/lib/cmake"
# cmake .. -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSUYU_USE_BUNDLED_VCPKG=OFF -DSUYU_TESTS=OFF -DENABLE_WEB_SERVICE=OFF -DENABLE_LIBUSB=OFF
# ninja
# build-msvc:
# name: 'test build (windows, msvc)'
# needs: format
# runs-on: windows-2022
# steps:
# - uses: https://code.forgejo.org/ actions/checkout@v3
# with:
# submodules: recursive
# fetch-depth: 0
# - name: Set up cache
# uses: https://code.forgejo.org/ actions/cache@v3
# with:
# path: ~/.buildcache
# key: ${{ runner.os }}-msvc-${{ github.sha }}
# restore-keys: |
# ${{ runner.os }}-msvc-
# - name: Install dependencies
# shell: pwsh
# run: |
# $ErrorActionPreference = "Stop"
# $BuildCacheVer = "v0.28.4"
# $File = "buildcache-windows.zip"
# $Uri = "https://github.com/mbitsnbites/buildcache/releases/download/$BuildCacheVer/$File"
# $WebClient = New-Object System.Net.WebClient
# $WebClient.DownloadFile($Uri, $File)
# 7z x $File
# $CurrentDir = Convert-Path .
# echo "$CurrentDir/buildcache/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
# - name: Install Vulkan SDK
# shell: pwsh
# run: .\.ci\scripts\windows\install-vulkan-sdk.ps1
# - name: Set up MSVC
# uses: https://github.com/ ilammy/msvc-dev-cmd@v1
# - name: Configure
# env:
# CC: cl.exe
# CXX: cl.exe
# run: |
# glslangValidator --version
# mkdir build
# cmake . -B build -GNinja -DCMAKE_TOOLCHAIN_FILE="CMakeModules/MSVCCache.cmake" -DUSE_CCACHE=ON -DSUYU_USE_BUNDLED_QT=1 -DSUYU_USE_BUNDLED_SDL2=1 -DSUYU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DSUYU_ENABLE_COMPATIBILITY_REPORTING=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DGIT_BRANCH=pr-verify -DSUYU_CRASH_DUMPS=ON
# - name: Build
# run: cmake --build build
# - name: Cache Summary
# run: buildcache -s
# - name: Pack
# shell: pwsh
# run: .\.ci\scripts\windows\upload.ps1
# - name: Upload
# uses: https://code.forgejo.org/ actions/upload-artifact@v3
# with:
# name: msvc
# path: artifacts/
# - name: Upload EXE
# uses: https://code.forgejo.org/ actions/upload-artifact@v3
# with:
# name: ${{ env.INDIVIDUAL_EXE }}
# path: ${{ env.INDIVIDUAL_EXE }}
android:
runs-on : ubuntu-latest
needs : format
steps:
- uses : actions/checkout@v3
- uses : https://code.forgejo.org/ actions/checkout@v3
with:
submodules : recursive
fetch-depth : 0
- name : set up JDK 17
uses : actions/setup-java@v3
uses : https://github.com/ actions/setup-java@v3
with:
java-version : '17'
distribution : 'temurin'
- name : Set up cache
uses : actions/cache@v3
uses : https://code.forgejo.org/ actions/cache@v3
with:
path : |
~/.gradle/caches
@ -171,7 +176,7 @@ jobs:
restore-keys : |
${{ runner.os }}-android-
- name : Query tag name
uses : olegtarasov/get-tag@v2.1.2
uses : https://github.com/ olegtarasov/get-tag@v2.1.2
id : tagName
- name : Install dependencies
run : |
@ -186,7 +191,8 @@ jobs:
ANDROID_KEYSTORE_PASS : ${{ secrets.ANDROID_KEYSTORE_PASS }}
run : ./.ci/scripts/android/upload.sh
- name : Upload
uses : actions/upload-artifact@v3
uses : https://code.forgejo.org/ actions/upload-artifact@v3
with:
name : android
path : artifacts/