ci: Add clean linux-6.6 build #19
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci-build | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
schedule: | |
- cron: "0 2 * * *" | |
env: | |
xt64_toolchain: https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1695643844189 | |
xt64_toolchain_file_name: Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.2-20230916.tar.gz | |
rv32_toolchain: https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2024.02.02 | |
rv32_toolchain_file_name: riscv32-glibc-ubuntu-22.04-gcc-nightly-2024.02.02-nightly.tar.gz | |
rv64_toolchain: https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2024.02.02 | |
rv64_toolchain_file_name: riscv64-glibc-ubuntu-22.04-gcc-nightly-2024.02.02-nightly.tar.gz | |
rv64ilp32_toolchain: https://github.com/ruyisdk/riscv-gnu-toolchain-rv64ilp32/releases/download/2024.02.23 | |
rv64ilp32_toolchain_file_name: riscv64ilp32-elf-ubuntu-22.04-gcc-nightly-2024.02.23-nightly.tar.gz | |
jobs: | |
kernel: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: linux-32ilp32 | |
toolchain_tripe: riscv32-unknown-linux-gnu- | |
- name: linux-64lp64 | |
toolchain_tripe: riscv64-unknown-linux-gnu- | |
- name: linux-64ilp32 | |
toolchain_tripe: riscv64-unknown-elf- | |
- name: linux-64lp64-xt | |
toolchain_tripe: riscv64-unknown-linux-gnu- | |
- name: linux-32ilp32-xt | |
toolchain_tripe: riscv32-unknown-linux-gnu- | |
runs-on: ubuntu-22.04 | |
env: | |
CROSS_COMPILE: ${{ matrix.toolchain_tripe }} | |
steps: | |
- name: Install software | |
run: | | |
sudo apt update && \ | |
sudo apt install -y build-essential | |
- name: Checkout source | |
uses: actions/checkout@v4 | |
- name: Configure toolchains | |
run: | | |
if [ x"${{ matrix.name }}" = x"linux-32ilp32" ]; then | |
wget ${rv32_toolchain}/${rv32_toolchain_file_name} | |
tar -xvf ${rv32_toolchain_file_name} -C /opt | |
rm -v ${rv32_toolchain_file_name} | |
fi | |
if [ x"${{ matrix.name }}" = x"linux-64lp64" ]; then | |
wget ${rv64_toolchain}/${rv64_toolchain_file_name} | |
tar -xvf ${rv64_toolchain_file_name} -C /opt | |
rm -v ${rv64_toolchain_file_name} | |
fi | |
if [ x"${{ matrix.name }}" = x"linux-64ilp32" ]; then | |
wget ${rv64ilp32_toolchain}/${rv64ilp32_toolchain_file_name} | |
tar -xvf ${rv64ilp32_toolchain_file_name} -C /opt | |
rm -v ${rv64ilp32_toolchain_file_name} | |
fi | |
if [ x"${{ matrix.name }}" = x"linux-64lp64-xt" ]; then | |
wget ${xt64_toolchain}/${xt64_toolchain_file_name} | |
tar -xvf ${xt64_toolchain_file_name} -C /opt | |
mv /opt/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.2 /opt/riscv | |
rm -v ${xt64_toolchain_file_name} | |
fi | |
if [ x"${{ matrix.name }}" = x"linux-32ilp32-xt" ]; then | |
wget ${rv32_toolchain}/${rv32_toolchain_file_name} | |
tar -xvf ${rv32_toolchain_file_name} -C /opt | |
rm -v ${rv32_toolchain_file_name} | |
fi | |
- name: Compile | |
run: | | |
if [ x"${{ matrix.name }}" = x"linux-32ilp32" ]; then | |
export PATH="/opt/riscv/bin:$PATH" | |
cp arch/riscv/configs/defconfig arch/riscv/configs/defconfig.bak | |
git checkout ffc253263a13 | |
mv arch/riscv/configs/defconfig.bak arch/riscv/configs/defconfig | |
make ARCH=riscv EXTRA_CFLAGS+=-g rv32_defconfig all INSTALL_MOD_PATH=./modules_install modules_install INSTALL_HDR_PATH=./headers_install headers_install -j$(nproc) | |
mv arch/riscv/boot/Image ./ | |
cp Documentation/admin-guide/kdump/gdbmacros.txt ./ | |
git log --oneline -500 > git.log | |
tar czvf ${{ matrix.name }}.tar.gz Image vmlinux git.log modules_install headers_install gdbmacros.txt | |
fi | |
if [ x"${{ matrix.name }}" = x"linux-64lp64" ]; then | |
export PATH="/opt/riscv/bin:$PATH" | |
cp arch/riscv/configs/defconfig arch/riscv/configs/defconfig.bak | |
git checkout ffc253263a13 | |
mv arch/riscv/configs/defconfig.bak arch/riscv/configs/defconfig | |
make ARCH=riscv EXTRA_CFLAGS+=-g defconfig all INSTALL_MOD_PATH=./modules_install modules_install INSTALL_HDR_PATH=./headers_install headers_install -j$(nproc) | |
mv arch/riscv/boot/Image ./ | |
cp Documentation/admin-guide/kdump/gdbmacros.txt ./ | |
git log --oneline -500 > git.log | |
tar czvf ${{ matrix.name }}.tar.gz Image vmlinux git.log modules_install headers_install gdbmacros.txt | |
fi | |
if [ x"${{ matrix.name }}" = x"linux-64ilp32" ]; then | |
export PATH="/opt/riscv/bin:$PATH" | |
echo CONFIG_MMU_SV32=y >> arch/riscv/configs/64ilp32.config | |
make ARCH=riscv EXTRA_CFLAGS+=-g rv64ilp32_defconfig all INSTALL_MOD_PATH=./modules_install modules_install INSTALL_HDR_PATH=./headers_install headers_install -j$(nproc) | |
mv arch/riscv/boot/Image ./Image_sv32xt | |
mv vmlinux vmlinux_sv32xt | |
mv headers_install headers_install_sv32xt | |
mv modules_install modules_install_sv32xt | |
git checkout arch/riscv/configs/64ilp32.config | |
make ARCH=riscv EXTRA_CFLAGS+=-g rv64ilp32_defconfig all INSTALL_MOD_PATH=./modules_install modules_install INSTALL_HDR_PATH=./headers_install headers_install -j$(nproc) | |
mv arch/riscv/boot/Image ./ | |
cp Documentation/admin-guide/kdump/gdbmacros.txt ./ | |
git log --oneline -500 > git.log | |
tar czvf ${{ matrix.name }}.tar.gz Image vmlinux modules_install headers_install Image_sv32xt vmlinux_sv32xt modules_install_sv32xt headers_install_sv32xt git.log gdbmacros.txt | |
fi | |
if [ x"${{ matrix.name }}" = x"linux-64lp64-xt" ]; then | |
export PATH="/opt/riscv/bin:$PATH" | |
make ARCH=riscv EXTRA_CFLAGS+=-g defconfig all INSTALL_MOD_PATH=./modules_install modules_install INSTALL_HDR_PATH=./headers_install headers_install -j$(nproc) | |
mv arch/riscv/boot/Image ./ | |
cp Documentation/admin-guide/kdump/gdbmacros.txt ./ | |
git log --oneline -500 > git.log | |
tar czvf ${{ matrix.name }}.tar.gz Image vmlinux git.log modules_install headers_install gdbmacros.txt | |
fi | |
if [ x"${{ matrix.name }}" = x"linux-32ilp32-xt" ]; then | |
export PATH="/opt/riscv/bin:$PATH" | |
make ARCH=riscv EXTRA_CFLAGS+=-g rv32_defconfig all INSTALL_MOD_PATH=./modules_install modules_install INSTALL_HDR_PATH=./headers_install headers_install -j$(nproc) | |
mv arch/riscv/boot/Image ./ | |
cp Documentation/admin-guide/kdump/gdbmacros.txt ./ | |
git log --oneline -500 > git.log | |
tar czvf ${{ matrix.name }}.tar.gz Image vmlinux git.log modules_install headers_install gdbmacros.txt | |
fi | |
- name: 'Upload Artifact' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.name }}.tar.gz | |
path: ${{ matrix.name }}.tar.gz | |
retention-days: 90 |