thead-u-boot-build #765
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: thead-u-boot-build | |
on: | |
push: | |
tags: | |
- '*' | |
branches: | |
- '*' | |
pull_request: | |
workflow_dispatch: | |
schedule: | |
- cron: "0 2 * * *" | |
env: | |
xuantie_toolchain: https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1705395627867 | |
toolchain_file_name: Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.8.1-20240115.tar.gz | |
mainline_toolchain: https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2024.04.12 | |
mainline_toolchain_file_name: riscv64-glibc-ubuntu-22.04-gcc-nightly-2024.04.12-nightly.tar.gz | |
wget_alias: 'wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0' | |
ARCH: riscv | |
CROSS_COMPILE: riscv64-unknown-linux-gnu- | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
name: [thead-gcc, gcc-13] | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Install software | |
run: | | |
sudo apt update && \ | |
sudo apt install -y gdisk dosfstools g++-12-riscv64-linux-gnu build-essential \ | |
libncurses-dev gawk flex bison openssl libssl-dev tree \ | |
dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf device-tree-compiler | |
- name: Checkout uboot | |
uses: actions/checkout@v4 | |
- name: uboot compile | |
run: | | |
mkdir output | |
if [[ ${{ matrix.name }} = "thead-gcc" ]]; then | |
${wget_alias} ${xuantie_toolchain}/${toolchain_file_name} | |
tar -xvf ${toolchain_file_name} -C /opt | |
export PATH="/opt/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.8.1/bin:$PATH" | |
else | |
${wget_alias} ${mainline_toolchain}/${mainline_toolchain_file_name} | |
tar -xvf ${mainline_toolchain_file_name} -C /opt | |
export PATH="/opt/riscv/bin:$PATH" | |
fi | |
${CROSS_COMPILE}gcc -v | |
pushd $PWD | |
make light_lpi4a_16g_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-lpi4a-16g.bin | |
make clean | |
make light_lpi4a_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-lpi4a.bin | |
make clean | |
make light_lpi4a_console_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-lcon4a.bin | |
make clean | |
make light_lpi4a_console_16g_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-lcon4a-16g.bin | |
make clean | |
make light_lpi4a_plastic_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-laptop4a.bin | |
make clean | |
make light_lpi4a_plastic_16g_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-laptop4a-16g.bin | |
make clean | |
make light_lpi4a_pocket_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-pocket4a.bin | |
make clean | |
make light_lpi4a_cluster_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-lc4a.bin | |
make clean | |
make light_lpi4a_cluster_16g_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-lc4a-16g.bin | |
make clean | |
make light_beagle_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-beagle.bin | |
make clean | |
make light_a_val_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-vala.bin | |
make clean | |
make light_milkv_meles_16g_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-meles-16g.bin | |
make clean | |
make light_milkv_meles_dualrank_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-meles.bin | |
make clean | |
make light_milkv_meles_singlerank_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-meles-4g.bin | |
# mainline support | |
make clean | |
make light_lpi4a_defconfig | |
sed -i 's#thead/light-lpi4a.dtb#thead/th1520-lichee-pi-4a.dtb#' .config | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-lpi4a-main.bin | |
make clean | |
make light_lpi4a_16g_defconfig | |
sed -i 's#thead/light-lpi4a-16gb.dtb#thead/th1520-lichee-pi-4a-16g.dtb#' .config | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-lpi4a-16g-main.bin | |
make clean | |
make light_lpi4a_cluster_defconfig | |
sed -i 's#thead/light-lpi4a-cluster.dtb#thead/th1520-lichee-cluster-4a.dtb#' .config | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-lc4a-main.bin | |
make clean | |
make light_lpi4a_cluster_16g_defconfig | |
sed -i 's#thead/light-lpi4a-cluster-16gb.dtb#thead/th1520-lichee-cluster-4a-16g.dtb#' .config | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-lc4a-16g-main.bin | |
# 8g emmc support | |
sed -i 's/name=swap,size=4096MiB,type=swap/name=swap,size=2MiB,type=swap/' include/configs/light-c910.h | |
make clean | |
make light_lpi4a_defconfig | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-lpi4a_8gemmc.bin | |
make clean | |
make light_lpi4a_defconfig | |
sed -i 's#thead/light-lpi4a.dtb#thead/th1520-lichee-pi-4a.dtb#' .config | |
make -j$(nproc) | |
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/output/u-boot-with-spl-lpi4a-main_8gemmc.bin | |
popd | |
tree ${GITHUB_WORKSPACE}/output | |
- name: 'Upload Artifact' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: thead-u-uboot-${{ matrix.name }} | |
path: output/*.bin | |
retention-days: 30 | |
- name: 'Create release by tag' | |
uses: softprops/action-gh-release@v1 | |
if: ${{ startsWith(github.ref, 'refs/tags/') && matrix.name == 'thead-gcc' }} | |
with: | |
files: output/*.bin | |
token: ${{ secrets.GITHUB_TOKEN }} |