1515 GCC5_ARM_PREFIX : arm-linux-gnueabi-
1616 GCC5_AARCH64_PREFIX : aarch64-linux-gnu-
1717 GCC5_RISCV64_PREFIX : riscv64-linux-gnu-
18+ GCC5_LOONGARCH64_PREFIX : loongarch64-unknown-linux-gnu-
19+ LOONGARCH64_TOOLCHAIN_TAG : 2024.11.01
20+ LOONGARCH64_TOOLCHAIN_NAME : x86_64-cross-tools-loongarch64-binutils_2.43.1-gcc_14.2.0-glibc_2.40.tar.xz
1821
1922jobs :
20- Linux-EDK2-Build :
21- runs-on : ubuntu-latest
23+ build :
24+ runs-on : ubuntu-24.04
2225
2326 strategy :
2427 matrix :
28+ arch : [X64, IA32, AARCH64, ARM, RISCV64, LOONGARCH64]
2529 include :
26- - TARGET_TYPE : x64
27- TARGET_ARCH : X64
28- TARGET_PKGS : python3-distutils nasm uuid-dev
29- - TARGET_TYPE : ia32
30- TARGET_ARCH : IA32
31- TARGET_PKGS : gcc-multilib python3-distutils nasm uuid-dev
32- - TARGET_TYPE : aa64
33- TARGET_ARCH : AARCH64
34- TARGET_PKGS : gcc-aarch64-linux-gnu python3-distutils uuid-dev
35- - TARGET_TYPE : arm
36- TARGET_ARCH : ARM
37- TARGET_PKGS : gcc-arm-linux-gnueabi python3-distutils uuid-dev
38- - TARGET_TYPE : riscv64
39- TARGET_ARCH : RISCV64
40- TARGET_PKGS : gcc-riscv64-linux-gnu python3-distutils uuid-dev
30+ - arch : X64
31+ short : x64
32+ pkgs : nasm python3-setuptools uuid-dev
33+ - arch : IA32
34+ short : ia32
35+ pkgs : gcc-multilib nasm python3-setuptools uuid-dev
36+ - arch : AARCH64
37+ short : aa64
38+ pkgs : gcc-aarch64-linux-gnu python3-setuptools uuid-dev
39+ - arch : ARM
40+ short : arm
41+ pkgs : gcc-arm-linux-gnueabi python3-setuptools uuid-dev
42+ - arch : RISCV64
43+ short : riscv64
44+ pkgs : gcc-riscv64-linux-gnu python3-setuptools uuid-dev
45+ - arch : LOONGARCH64
46+ short : loongarch64
47+ pkgs : gcc-multilib python3-setuptools uuid-dev
4148
4249 steps :
4350 - name : Check out repository
@@ -47,16 +54,22 @@ jobs:
4754
4855 - name : Set version
4956 id : set_version
50- # NB: The following only works if the shell is bash
5157 run : echo "version=$(git describe --tags)" >> $GITHUB_OUTPUT
5258
5359 - name : Create version.h file
5460 run : |
5561 git update-index --skip-worktree version.h
56- echo '#define VERSION_STRING L"${{steps.set_version.outputs.version}}"' > version.h
62+ echo '#define VERSION_STRING L"${{ steps.set_version.outputs.version }}"' > version.h
5763
58- - name : Set up Linux environment
59- run : sudo apt-get update && sudo apt-get -y --no-install-recommends install ${{matrix.TARGET_PKGS}}
64+ - name : Install toolchain
65+ run : |
66+ sudo apt-get update
67+ sudo apt-get install -y --no-install-recommends ${{ matrix.pkgs }}
68+ if [[ "${{ matrix.arch }}" == "LOONGARCH64" ]]; then
69+ curl -L -O https://github.com/loongson/build-tools/releases/download/${LOONGARCH64_TOOLCHAIN_TAG}/${LOONGARCH64_TOOLCHAIN_NAME}
70+ tar -xJf ${LOONGARCH64_TOOLCHAIN_NAME}
71+ echo "$PWD/cross-tools/bin" >> "$GITHUB_PATH"
72+ fi
6073
6174 - name : Set up EDK2
6275 run : |
@@ -68,22 +81,22 @@ jobs:
6881 export WORKSPACE=$PWD
6982 export PACKAGES_PATH=$WORKSPACE:$WORKSPACE/edk2
7083 source edk2/edksetup.sh
71- build -a ${{matrix.TARGET_ARCH }} -b ${BUILD_TYPE} -t GCC5 -p uefi-ntfs.dsc
72- mv $WORKSPACE/Build/${BUILD_TYPE}_GCC5/${{matrix.TARGET_ARCH }}/uefi-ntfs.efi $WORKSPACE/boot${{matrix.TARGET_TYPE }}.efi
84+ build -a ${{ matrix.arch }} -b ${BUILD_TYPE} -t GCC5 -p uefi-ntfs.dsc
85+ mv $WORKSPACE/Build/${BUILD_TYPE}_GCC5/${{ matrix.arch }}/uefi-ntfs.efi $WORKSPACE/boot${{ matrix.short }}.efi
7386
7487 - name : Display SHA-256
7588 run : sha256sum *.efi
7689
7790 - name : Upload artifacts
7891 uses : actions/upload-artifact@v4
7992 with :
80- name : ${{matrix.TARGET_TYPE }}
93+ name : ${{ matrix.short }}
8194 path : ./*.efi
8295
8396 - name : Create release
8497 uses : softprops/action-gh-release@v2
8598 if : startsWith(github.ref, 'refs/tags/')
8699 with :
87- token : ${{secrets.GITHUB_TOKEN}}
100+ token : ${{ secrets.GITHUB_TOKEN }}
88101 body : " **UEFI:NTFS ${{ steps.set_version.outputs.version }}**"
89102 files : ./*.efi
0 commit comments