SDL: ci: use loongson official cross toolchains

From c82cca04942fa939a5e0e9c3915b5a4abe5c680b Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Thu, 30 Mar 2023 05:02:36 +0200
Subject: [PATCH] ci: use loongson official cross toolchains

---
 .github/workflows/loongarch64.yml | 39 ++++++++++++++++++++++++++-----
 .github/workflows/vita.yml        |  4 ++--
 2 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/loongarch64.yml b/.github/workflows/loongarch64.yml
index aa9200ef974b..f45e1fadc3fc 100644
--- a/.github/workflows/loongarch64.yml
+++ b/.github/workflows/loongarch64.yml
@@ -9,19 +9,46 @@ concurrency:
 jobs:
   loongarch64:
     runs-on: ubuntu-latest
-    container:
-      image: yinshiyou01/ubuntu-la64-cross-gcc:v0
+    strategy:
+      fail-fast: false
+      matrix:
+        platform:
+          - { toolchain-version: 2022.09.06 }
     steps:
       - uses: actions/checkout@v3
       - name: Install build requirements
         run: |
-          apt-get update -y
-          apt-get install -y cmake ninja-build pkg-config
-      - name: Configure environment
+          sudo apt-get update -y
+          sudo apt-get install -y --no-install-recommends cmake ninja-build pkg-config tar wget
+
+      - uses: actions/cache/restore@v3
+        id: restore-cache
+        with:
+          path: /opt/cross-tools
+          key: loongarch64-${{ matrix.platform.toolchain-version }}
+
+      - name: Download LoongArch64 gcc+glibc toolchain
+        if: ${{ !steps.restore-cache.outputs.cache-hit }}
+        run: |
+          url="https://github.com/loongson/build-tools/releases/download/${{ matrix.platform.toolchain-version }}/loongarch64-clfs-6.3-cross-tools-gcc-glibc.tar.xz"
+
+          wget "$url" -O /tmp/toolchain.tar.xz
+
+          mkdir -p /opt
+          tar -C /opt -x -f /tmp/toolchain.tar.xz
+
+      - uses: actions/cache/save@v3
+        if: ${{ !steps.restore-cache.outputs.cache-hit }}
+        with:
+          path: /opt/cross-tools
+          key: loongarch64-${{ matrix.platform.toolchain-version }}
+
+      - name: Set-up Loongarch64 build environment
         run: |
-          echo "/usr/local/cross-tools/bin" >> $GITHUB_PATH
+          echo "/opt/cross-tools/bin" >> $GITHUB_PATH
           echo "CC=loongarch64-unknown-linux-gnu-gcc" >> $GITHUB_ENV
           echo "CXX=loongarch64-unknown-linux-gnu-g++" >> $GITHUB_ENV
+
       - name: Configure (CMake)
         run: |
           cmake -S . -B build -G Ninja \
diff --git a/.github/workflows/vita.yml b/.github/workflows/vita.yml
index 2842bff29f15..32d7f4d57ca1 100644
--- a/.github/workflows/vita.yml
+++ b/.github/workflows/vita.yml
@@ -20,8 +20,8 @@ jobs:
       fail-fast: false
       matrix:
         platform:
-        - { name: Vita (GLES w/ pib),                  os: windows-latest, pib: true, version: 1.1.4, artifact: SDL-vita-pib }
-        - { name: Vita (GLES w/ PVR_PSP2 + gles4vita), os: windows-latest, pvr: true, version: 3.9,   artifact: SDL-vita-pvr }
+        - { name: Vita (GLES w/ pib),                  pib: true, version: 1.1.4, artifact: SDL-vita-pib }
+        - { name: Vita (GLES w/ PVR_PSP2 + gles4vita), pvr: true, version: 3.9,   artifact: SDL-vita-pvr }
 
     steps:
     - uses: actions/checkout@v3