15
15
GCC5_ARM_PREFIX : arm-linux-gnueabi-
16
16
GCC5_AARCH64_PREFIX : aarch64-linux-gnu-
17
17
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
18
21
19
22
jobs :
20
- Linux-EDK2-Build :
21
- runs-on : ubuntu-latest
23
+ build :
24
+ runs-on : ubuntu-24.04
22
25
23
26
strategy :
24
27
matrix :
28
+ arch : [X64, IA32, AARCH64, ARM, RISCV64, LOONGARCH64]
25
29
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
41
48
42
49
steps :
43
50
- name : Check out repository
@@ -47,16 +54,22 @@ jobs:
47
54
48
55
- name : Set version
49
56
id : set_version
50
- # NB: The following only works if the shell is bash
51
57
run : echo "version=$(git describe --tags)" >> $GITHUB_OUTPUT
52
58
53
59
- name : Create version.h file
54
60
run : |
55
61
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
57
63
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
60
73
61
74
- name : Set up EDK2
62
75
run : |
@@ -68,22 +81,22 @@ jobs:
68
81
export WORKSPACE=$PWD
69
82
export PACKAGES_PATH=$WORKSPACE:$WORKSPACE/edk2
70
83
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
73
86
74
87
- name : Display SHA-256
75
88
run : sha256sum *.efi
76
89
77
90
- name : Upload artifacts
78
91
uses : actions/upload-artifact@v4
79
92
with :
80
- name : ${{matrix.TARGET_TYPE }}
93
+ name : ${{ matrix.short }}
81
94
path : ./*.efi
82
95
83
96
- name : Create release
84
97
uses : softprops/action-gh-release@v2
85
98
if : startsWith(github.ref, 'refs/tags/')
86
99
with :
87
- token : ${{secrets.GITHUB_TOKEN}}
100
+ token : ${{ secrets.GITHUB_TOKEN }}
88
101
body : " **UEFI:NTFS ${{ steps.set_version.outputs.version }}**"
89
102
files : ./*.efi
0 commit comments