From a1815b617ceebf9a0a43c6fb89a13ac7f37f9ba4 Mon Sep 17 00:00:00 2001
From: liushuyu <liushuyu011@gmail.com>
Date: Wed, 22 Dec 2021 23:31:57 -0700
Subject: [PATCH] CI: Use GitHub Actions to check pull requests

---
 .ci/scripts/clang/docker.sh   |  2 --
 .ci/scripts/linux/docker.sh   |  2 --
 .ci/scripts/windows/docker.sh | 17 ++++++++----
 .github/workflows/verify.yml  | 52 +++++++++++++++++++++++++++++++++++
 4 files changed, 63 insertions(+), 10 deletions(-)
 create mode 100644 .github/workflows/verify.yml

diff --git a/.ci/scripts/clang/docker.sh b/.ci/scripts/clang/docker.sh
index 885d74e97f..4bb07105a4 100755
--- a/.ci/scripts/clang/docker.sh
+++ b/.ci/scripts/clang/docker.sh
@@ -3,8 +3,6 @@
 # Exit on error, rather than continuing with the rest of the script.
 set -e
 
-cd /yuzu
-
 ccache -s
 
 mkdir build || true && cd build
diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh
index 5070b92d1f..38b29294cc 100755
--- a/.ci/scripts/linux/docker.sh
+++ b/.ci/scripts/linux/docker.sh
@@ -3,8 +3,6 @@
 # Exit on error, rather than continuing with the rest of the script.
 set -e
 
-cd /yuzu
-
 ccache -s
 
 mkdir build || true && cd build
diff --git a/.ci/scripts/windows/docker.sh b/.ci/scripts/windows/docker.sh
index f53d837d1f..6420c8f7d9 100755
--- a/.ci/scripts/windows/docker.sh
+++ b/.ci/scripts/windows/docker.sh
@@ -2,19 +2,24 @@
 
 set -e
 
-cd /yuzu
+#cd /yuzu
 
 ccache -s
 
-mkdir build || true && cd build
-LDFLAGS="-fuse-ld=lld"
+mkdir -p "$HOME/.conan/"
+cp -rv /home/yuzu/.conan/profiles/ "$HOME/.conan/"
+cp -rv /home/yuzu/.conan/settings.yml "$HOME/.conan/"
+
+mkdir -p build && cd build
+export LDFLAGS="-fuse-ld=lld"
 # -femulated-tls required due to an incompatibility between GCC and Clang
 # TODO(lat9nq): If this is widespread, we probably need to add this to CMakeLists where appropriate
+export CFLAGS="-femulated-tls"
+export CXXFLAGS="${CFLAGS}"
 cmake .. \
     -DCMAKE_BUILD_TYPE=Release \
-    -DCMAKE_CXX_FLAGS="-femulated-tls" \
-    -DCMAKE_TOOLCHAIN_FILE="$(pwd)/../CMakeModules/MinGWClangCross.cmake" \
-    -DDISPLAY_VERSION=$1 \
+    -DCMAKE_TOOLCHAIN_FILE="${PWD}/../CMakeModules/MinGWClangCross.cmake" \
+    -DDISPLAY_VERSION="$1" \
     -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
     -DENABLE_QT_TRANSLATION=ON \
     -DUSE_CCACHE=ON \
diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml
new file mode 100644
index 0000000000..e601ecd400
--- /dev/null
+++ b/.github/workflows/verify.yml
@@ -0,0 +1,52 @@
+name: 'yuzu verify'
+
+on:
+  pull_request:
+    branches: [ master ]
+
+jobs:
+  format:
+    name: 'verify formatting'
+    runs-on: ubuntu-latest
+    container:
+      image: yuzuemu/build-environments:linux-clang-format
+      options: -u 1001
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: false
+      - name: 'Verify Formatting'
+        run: bash -ex ./.ci/scripts/format/script.sh
+  build:
+    name: 'test build'
+    needs: format
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+          - type: clang
+            image: linux-fresh
+          - type: linux
+            image: linux-fresh
+          - type: windows
+            image: linux-mingw
+    container:
+      image: yuzuemu/build-environments:${{ matrix.image }}
+      options: -u 1001
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: recursive
+          fetch-depth: 0
+      - name: Set up cache
+        uses: actions/cache@v2
+        with:
+          path: ~/.ccache
+          key: ${{ runner.os }}-${{ matrix.image }}-${{ github.sha }}
+          restore-keys: |
+            ${{ runner.os }}-${{ matrix.image }}-
+      - name: Build
+        run: ./.ci/scripts/${{ matrix.type }}/docker.sh
+        env:
+          ENABLE_COMPATIBILITY_REPORTING: "ON"