From 2e52a543a0d6cddc9561567165c02c5df45bb910 Mon Sep 17 00:00:00 2001
From: lzyprime <2383518170@qq.com>
Date: Tue, 2 Dec 2025 00:25:47 +0800
Subject: [PATCH 01/11] =?UTF-8?q?feat:=20lava=E5=A2=9E=E5=8A=A0=E7=A1=AC?=
=?UTF-8?q?=E4=BB=B6=E8=AE=BE=E5=A4=87=E6=94=AF=E6=8C=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
根据设备类型,匹配不同dtb
优化lava传参,传递kernel所有文件所在的文件夹链接。具体文件靠拼接
---
.github/workflows/kernel-build.yml | 14 +++----
.github/workflows/lava-trigger.yml | 64 ++++++++++++++++++------------
.github/workflows/parse-rvck.yml | 2 +-
.github/workflows/rava-actions.yml | 2 +-
.github/workflows/rvck-actions.yml | 34 ++++++++++++++--
5 files changed, 77 insertions(+), 39 deletions(-)
diff --git a/.github/workflows/kernel-build.yml b/.github/workflows/kernel-build.yml
index ace3e4d..4796686 100755
--- a/.github/workflows/kernel-build.yml
+++ b/.github/workflows/kernel-build.yml
@@ -39,8 +39,7 @@ jobs:
group: kernel_build-runner
outputs:
- kernel_download_url: ${{ steps.publish-kernel.outputs.kernel_download_url }}
- initramfs_download_url: ${{ steps.publish-kernel.outputs.initramfs_download_url }}
+ kernel_files_url: ${{ steps.publish-kernel.outputs.kernel_files_url }}
kernel_md5sum: ${{ steps.publish-kernel.outputs.kernel_md5sum }}
initramfs_md5sum: ${{ steps.publish-kernel.outputs.initramfs_md5sum }}
summary_content: ${{ steps.summary.outputs.summary_content }}
@@ -79,20 +78,19 @@ jobs:
run: |
rsync -av --progress --mkpath "${kernel_result_dir}"/*/* rvck@10.30.190.110::RVCK/${{ inputs.upload_dir }}/
- echo "kernel_download_url=https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/RVCK/OERV-RVCI/${{ inputs.upload_dir }}/Image" >> $GITHUB_OUTPUT
+ echo "kernel_files_url=https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/RVCK/OERV-RVCI/${{ inputs.upload_dir }}" >> $GITHUB_OUTPUT
echo "kernel_md5sum=$(awk '{print $1}' "${kernel_result_dir}"/*/Image.md5sum)" >> $GITHUB_OUTPUT
- echo "initramfs_download_url=https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/RVCK/OERV-RVCI/${{ inputs.upload_dir }}/initramfs.img" >> $GITHUB_OUTPUT
echo "initramfs_md5sum=$(awk '{print $1}' "${kernel_result_dir}"/*/initramfs.img.md5sum)" >> $GITHUB_OUTPUT
- name: summary
if: ${{ !cancelled() }}
id: summary
env:
- kernel_url: ${{ steps.publish-kernel.outputs.kernel_download_url }}
+ kernel_files_url: ${{ steps.publish-kernel.outputs.kernel_files_url }}
upload_dir: ${{ inputs.upload_dir }}
run: |
- if [ "$kernel_url" != "" ]; then
- result="Kernel build succeeded: [${upload_dir}]($(dirname ${kernel_url}))/"
+ if [ "$kernel_files_url" != "" ]; then
+ result="Kernel build succeeded: [${upload_dir}]($kernel_files_url)/"
else
result="Kernel build failed."
fi
@@ -112,5 +110,5 @@ jobs:
cat summary >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- [ "$kernel_url" != "" ] # 设置步骤状态
+ [ "$kernel_files_url" != "" ] # 设置步骤状态
diff --git a/.github/workflows/lava-trigger.yml b/.github/workflows/lava-trigger.yml
index c829159..33144ba 100644
--- a/.github/workflows/lava-trigger.yml
+++ b/.github/workflows/lava-trigger.yml
@@ -7,30 +7,26 @@ on:
value: ${{ jobs.collect-summary.outputs.summary_content }}
inputs:
- kernel_download_url:
- description: '内核下载链接'
+ kernel_files_url:
+ description: '内核文件夹链接'
type: string
required: true
+
kernel_md5sum:
description: '内核md5sum'
type: string
required: false
-
- rootfs_download_url:
- description: 'rootfs下载链接'
- required: false
- type: string
-
- initramfs_download_url:
- description: 'initramfs下载链接'
- required: false
- type: string
initramfs_md5sum:
description: 'initramfs md5sum'
required: false
type: string
+ rootfs_download_url:
+ description: 'rootfs下载链接'
+ required: false
+ type: string
+
testcase_repo:
description: 'lava 仓库地址, {owner}/{repo}'
required: true
@@ -51,21 +47,17 @@ on:
description: '需要执行的用例yaml 文件路径'
required: true
type: string
-
- # testcase_params:
- # description: '测试用例参数,[key=value ...]'
- # type: string
- # required: false
secrets:
lava_token:
required: true
env:
+ kernel_files_url: ${{ inputs.kernel_files_url }}
+ kernel_download_url: ${{ inputs.kernel_files_url }}/Image
+ initramfs_download_url: ${{ inputs.kernel_files_url }}/initramfs.img
testcase_repo: ${{ inputs.testcase_repo }}
testcase_ref: ${{ inputs.testcase_ref }}
- kernel_download_url: ${{ inputs.kernel_download_url }}
- initramfs_download_url: ${{ inputs.initramfs_download_url }}
lava_template: ${{ inputs.lava_template }}
testcase_path: ${{ inputs.testcase_path }}
lava_server: lava.oerv.ac.cn
@@ -100,14 +92,20 @@ jobs:
input_rootfs_download_url: ${{ inputs.rootfs_download_url }}
input_kernel_md5sum: ${{ inputs.kernel_md5sum }}
input_initramfs_md5sum: ${{ inputs.initramfs_md5sum }}
+ shell: bash
run: |
echo "ssh_port=$(od -An -N2 -i /dev/urandom | awk -v min=10000 -v max=20000 '{print min + ($1 % (max - min + 1))}')" >> $GITHUB_OUTPUT
+
repo_name=${github_repo#*/}
echo "repo_name=$repo_name" >> $GITHUB_OUTPUT
+
job_name="${github_repo/\//_}_${event_name}_${issue_id:-"$(date +"%Y%m%d")"}_${comment_id:+_$comment_id}"
echo "job_name=$job_name" >> $GITHUB_OUTPUT
+
device_type="$(yq -r .device_type "$lava_template")"
+
echo "testitem_name=${job_name}_$(echo "${testcase_path}" | awk -F'/' '{print $2}')_${device_type}" >> $GITHUB_OUTPUT
+
rootfs_download_url="${input_rootfs_download_url}"
if [ -z "$rootfs_download_url" ]; then
if [ "$device_type" = qemu ]; then
@@ -116,19 +114,27 @@ jobs:
rootfs_download_url="https://fast-mirror.isrc.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/RVCK/openEuler24.03-LTS-SP1/openeuler-rootfs.tar.gz"
fi
fi
+ echo "rootfs_download_url=$rootfs_download_url" >> $GITHUB_OUTPUT
kernel_md5sum="$input_kernel_md5sum"
if [ -z "$kernel_md5sum" ]; then
kernel_md5sum=$(curl "${kernel_download_url}.md5sum" 2>/dev/null | awk '{print $1}' || echo "")
fi
+ echo "kernel_md5sum=$kernel_md5sum" >> $GITHUB_OUTPUT
+
initramfs_md5sum="$input_initramfs_md5sum"
if [ -z "$initramfs_md5sum" ]; then
initramfs_md5sum=$(curl "${initramfs_download_url}.md5sum" 2>/dev/null | awk '{print $1}' || echo "")
fi
-
- echo "rootfs_download_url=$rootfs_download_url" >> $GITHUB_OUTPUT
- echo "kernel_md5sum=$kernel_md5sum" >> $GITHUB_OUTPUT
echo "initramfs_md5sum=$initramfs_md5sum" >> $GITHUB_OUTPUT
+
+ declare -A dtb_map=(
+ ["sg2042"]="${kernel_files_url}/lib/dtbs/sophgo/mango-milkv-pioneer.dtb"
+ ["spacemit-k1-bananapi-f3"]="${kernel_files_url}/lib/dtbs/spacemit/k1-bananapi-f3.dtb"
+ ["lpi4a"]="${kernel_files_url}/lib/dtbs/thead/th1520-lichee-pi-4a.dtb"
+ ["qemu"]=""
+ )
+ echo "dtb_url=${dtb_map[${device_type}]:-"UNKNOWN_DEVICE_TYPE"}" >> $GITHUB_OUTPUT
- name: setup_lava_template
shell: python3 {0}
@@ -137,6 +143,9 @@ jobs:
job_name: ${{ steps.gen_var.outputs.job_name }}
testitem_name: ${{ steps.gen_var.outputs.testitem_name }}
rootfs_download_url: ${{ steps.gen_var.outputs.rootfs_download_url }}
+ kernel_md5sum: ${{ steps.gen_var.outputs.kernel_md5sum }}
+ initramfs_md5sum: ${{ steps.gen_var.outputs.initramfs_md5sum }}
+ dtb_url: ${{ steps.gen_var.outputs.dtb_url }}
repo_name: ${{ steps.gen_var.outputs.repo_name }}
run: |
import yaml
@@ -174,9 +183,12 @@ jobs:
assert repo_name, "repo name is not set"
initramfs_download_url = os.getenv("initramfs_download_url")
- assert initramfs_download_url, "Initramfs download URL is not set"
+ assert initramfs_download_url, "initramfs download URL is not set"
- initramfs_md5sum = os.getenv("initramfs_md5sum")
+ initramfs_md5sum = os.getenv("initramfs_md5sum", "")
+
+ # 硬件设备需要dtb
+ dtb_url = os.getenv("dtb_url", "")
content = open(lava_template, "r").read()\
.replace("${job_name}", job_name)\
@@ -184,7 +196,9 @@ jobs:
.replace("${rootfs_image_url}", rootfs_download_url)\
.replace("${testcase_repo}", f"https://github.com/{testcase_repo}.git")\
.replace("${testitem_name}", testitem_name)\
- .replace("${testcase_path}", testcase_path)
+ .replace("${testcase_path}", testcase_path)\
+ .replace("${dtb_url}", dtb_url)\
+ .replace("${ramdisk_url}", initramfs_download_url)
data = yaml.safe_load(content)
diff --git a/.github/workflows/parse-rvck.yml b/.github/workflows/parse-rvck.yml
index 4d2f4e2..224473a 100644
--- a/.github/workflows/parse-rvck.yml
+++ b/.github/workflows/parse-rvck.yml
@@ -221,7 +221,7 @@ jobs:
echo "COMMIT_URL=$(cat COMMIT_URL)" >> $GITHUB_OUTPUT
echo "NEED_RUN_JOB=$(cat job || echo 'kunit-test,kernel-build,check-patch,lava-trigger')" >> $GITHUB_OUTPUT
echo "testcase_repo=$(cat testcase_repo || echo 'RVCK-Project/lavaci')" >> $GITHUB_OUTPUT
- echo "lava_template=$(cat lava_template || echo 'lava-job-template/qemu/qemu-ltp.yaml')" >> $GITHUB_OUTPUT
+ echo "lava_template=$(cat lava_template || echo '')" >> $GITHUB_OUTPUT
echo "testcase_path=$(cat testcase_path || echo 'lava-testcases/common-test/ltp/ltp.yaml')" >> $GITHUB_OUTPUT
echo "REPO=$(cat REPO)" >> $GITHUB_ENV
diff --git a/.github/workflows/rava-actions.yml b/.github/workflows/rava-actions.yml
index e669bc3..310a83b 100644
--- a/.github/workflows/rava-actions.yml
+++ b/.github/workflows/rava-actions.yml
@@ -148,7 +148,7 @@ jobs:
secrets:
lava_token: ${{ secrets.lava_token }}
with:
- kernel_download_url: 'https://fast-mirror.isrc.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/RVCK/OERV-RVCI/rvck-olk/latest/Image'
+ kernel_files_url: 'https://fast-mirror.isrc.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/RVCK/OERV-RVCI/rvck-olk/latest'
testcase_repo: ${{ needs.parse-request.outputs.testcase_repo }}
testcase_ref: ${{ needs.parse-request.outputs.testcase_ref }}
lava_template: ${{ needs.parse-request.outputs.lava_template }}
diff --git a/.github/workflows/rvck-actions.yml b/.github/workflows/rvck-actions.yml
index ee18851..58fd8c9 100644
--- a/.github/workflows/rvck-actions.yml
+++ b/.github/workflows/rvck-actions.yml
@@ -74,16 +74,42 @@ jobs:
lava-trigger:
needs: [parse-request, kernel-build]
+ if: ${{ contains(needs.parse-request.outputs.NEED_RUN_JOB, 'lava-trigger') && needs.parse-request.outputs.lava_template }}
uses: ./.github/workflows/lava-trigger.yml
- if: ${{ contains(needs.parse-request.outputs.NEED_RUN_JOB, 'lava-trigger') }}
secrets:
lava_token: ${{ secrets.LAVA_TOKEN }}
with:
testcase_repo: ${{ needs.parse-request.outputs.testcase_repo }}
lava_template: ${{ needs.parse-request.outputs.lava_template }}
testcase_path: ${{ needs.parse-request.outputs.testcase_path }}
- kernel_download_url: ${{ needs.kernel-build.outputs.kernel_download_url }}
- initramfs_download_url: ${{ needs.kernel-build.outputs.initramfs_download_url }}
+ kernel_files_url: ${{ needs.kernel-build.outputs.kernel_files_url }}
+ kernel_md5sum: ${{ needs.kernel_build.outputs.kernel_md5sum }}
+ initramfs_md5sum: ${{ needs.kernel_build.outputs.initramfs_md5sum }}
+
+ multi-lava-trigger:
+ needs: [parse-request, kernel-build]
+ if: ${{ contains(needs.parse-request.outputs.NEED_RUN_JOB, 'lava-trigger') && !needs.parse-request.outputs.lava_template }}
+ strategy:
+ matrix:
+ device: [qemu, sg2042, spacemit-k1-bananapi-f3, lpi4a]
+ include:
+ - device: qemu
+ lava_template: lava-job-template/qemu/qemu-ltp.yaml
+ - device: sg2042
+ lava_template: lava-job-template/sg2042/sg2042-ltp.yaml
+ - device: spacemit-k1-bananapi-f3
+ lava_template: lava-job-template/spacemit-k1-bananapi-f3/k1-bpif3-ltp.yaml
+ - device: lpi4a
+ lava_template: lava-job-template/lpi4a/lpi4a-ltp.yaml
+ name: lava-trigger-${{ matrix.device }}
+ uses: ./.github/workflows/lava-trigger.yml
+ secrets:
+ lava_token: ${{ secrets.LAVA_TOKEN }}
+ with:
+ testcase_repo: ${{ needs.parse-request.outputs.testcase_repo }}
+ lava_template: ${{ matrix.lava_template }}
+ testcase_path: ${{ needs.parse-request.outputs.testcase_path }}
+ kernel_files_url: ${{ needs.kernel-build.outputs.kernel_files_url }}
kernel_md5sum: ${{ needs.kernel_build.outputs.kernel_md5sum }}
initramfs_md5sum: ${{ needs.kernel_build.outputs.initramfs_md5sum }}
@@ -99,7 +125,7 @@ jobs:
collect-result:
if: ${{ !cancelled() && needs.parse-request.outputs.REPO }}
- needs: [parse-request, pre-check, kunit-test, kernel-build, lava-trigger, check-patch]
+ needs: [parse-request, pre-check, kunit-test, kernel-build, lava-trigger, multi-lava-trigger, check-patch]
permissions:
issues: write
pull-requests: write
From f0f884518c5774aa4c3b9b5cfd22c77796e3f31a Mon Sep 17 00:00:00 2001
From: lzyprime <2383518170@qq.com>
Date: Tue, 2 Dec 2025 00:36:44 +0800
Subject: [PATCH 02/11] =?UTF-8?q?=E6=96=B9=E4=BE=BF=E8=B0=83=E8=AF=95?=
=?UTF-8?q?=EF=BC=8C=E8=B7=B3=E8=BF=87=E5=86=85=E6=A0=B8=E6=9E=84=E5=BB=BA?=
=?UTF-8?q?=E8=BF=87=E7=A8=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/rvck-actions.yml | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/rvck-actions.yml b/.github/workflows/rvck-actions.yml
index 58fd8c9..f14300d 100644
--- a/.github/workflows/rvck-actions.yml
+++ b/.github/workflows/rvck-actions.yml
@@ -62,14 +62,24 @@ jobs:
fetch_ref: ${{ needs.parse-request.outputs.FETCH_REF }}
kernel-build:
+ runs-on: 'ubuntu-latest'
+ outputs:
+ kernel_files_url: ${{ steps.output-kernel-url.outputs.kernel_files_url }}
needs: [parse-request]
if: ${{ needs.parse-request.outputs.REPO && contains(needs.parse-request.outputs.NEED_RUN_JOB, 'kernel-build') }}
- uses: ./.github/workflows/kernel-build.yml
- with:
- commit_url: ${{ needs.parse-request.outputs.COMMIT_URL }}
- upload_dir: ${{ github.repository }}/${{ github.event.comment.id && format('{0}_{1}', needs.parse-request.outputs.ISSUE_ID, github.event.comment.id) || needs.parse-request.outputs.ISSUE_ID }}
- secrets:
- rync_passphrase: ${{ secrets.RSYNC_PASSPHRASE }}
+ steps:
+ - id: output-kernel-url
+ run: echo "kernel_files_url=https://fast-mirror.isrc.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/RVCK/OERV-RVCI/rvck-olk/latest" >> $GITHUB_OUTPUT
+
+ # kernel-build:
+ # needs: [parse-request]
+ # if: ${{ needs.parse-request.outputs.REPO && contains(needs.parse-request.outputs.NEED_RUN_JOB, 'kernel-build') }}
+ # uses: ./.github/workflows/kernel-build.yml
+ # with:
+ # commit_url: ${{ needs.parse-request.outputs.COMMIT_URL }}
+ # upload_dir: ${{ github.repository }}/${{ github.event.comment.id && format('{0}_{1}', needs.parse-request.outputs.ISSUE_ID, github.event.comment.id) || needs.parse-request.outputs.ISSUE_ID }}
+ # secrets:
+ # rync_passphrase: ${{ secrets.RSYNC_PASSPHRASE }}
lava-trigger:
From 0e2ae779f50e2b8a8b9df42f90b125bca5b1a6e0 Mon Sep 17 00:00:00 2001
From: lzyprime <2383518170@qq.com>
Date: Tue, 2 Dec 2025 19:47:20 +0800
Subject: [PATCH 03/11] =?UTF-8?q?matrix=E8=BF=98=E6=B2=A1=E6=9C=89?=
=?UTF-8?q?=E6=83=B3=E5=88=B0=E6=AF=94=E8=BE=83=E5=A5=BD=E7=9A=84=E8=A7=A6?=
=?UTF-8?q?=E5=8F=91=E6=96=B9=E5=BC=8F=EF=BC=8C=E6=9A=82=E6=97=B6=E7=94=A8?=
=?UTF-8?q?=E6=9C=80=E6=9C=B4=E7=B4=A0=E7=9A=84=E6=96=B9=E5=BC=8F=E6=89=A7?=
=?UTF-8?q?=E8=A1=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/lava-trigger.yml | 5 +-
.github/workflows/rvck-actions.yml | 96 ++++++++++++++++++++++--------
2 files changed, 74 insertions(+), 27 deletions(-)
diff --git a/.github/workflows/lava-trigger.yml b/.github/workflows/lava-trigger.yml
index 33144ba..74922c0 100644
--- a/.github/workflows/lava-trigger.yml
+++ b/.github/workflows/lava-trigger.yml
@@ -40,7 +40,7 @@ on:
lava_template:
description: 'lava测试模板'
- required: true
+ required: false
type: string
testcase_path:
@@ -94,6 +94,7 @@ jobs:
input_initramfs_md5sum: ${{ inputs.initramfs_md5sum }}
shell: bash
run: |
+ set -x
echo "ssh_port=$(od -An -N2 -i /dev/urandom | awk -v min=10000 -v max=20000 '{print min + ($1 % (max - min + 1))}')" >> $GITHUB_OUTPUT
repo_name=${github_repo#*/}
@@ -227,8 +228,6 @@ jobs:
- name: run lava check
id: run_lava_check
-# env:
-# job_name: ${{ steps.gen_var.outputs.job_name }}
shell: bash
run: |
echo "=========== edited lava template ==========="
diff --git a/.github/workflows/rvck-actions.yml b/.github/workflows/rvck-actions.yml
index f14300d..17be580 100644
--- a/.github/workflows/rvck-actions.yml
+++ b/.github/workflows/rvck-actions.yml
@@ -64,12 +64,15 @@ jobs:
kernel-build:
runs-on: 'ubuntu-latest'
outputs:
- kernel_files_url: ${{ steps.output-kernel-url.outputs.kernel_files_url }}
+ kernel_files_url: ${{ steps.kernel-output.outputs.kernel_files_url }}
+ summary_content: ${{ steps.kernel-output.outputs.kernel_files_url }}
needs: [parse-request]
if: ${{ needs.parse-request.outputs.REPO && contains(needs.parse-request.outputs.NEED_RUN_JOB, 'kernel-build') }}
steps:
- - id: output-kernel-url
- run: echo "kernel_files_url=https://fast-mirror.isrc.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/RVCK/OERV-RVCI/rvck-olk/latest" >> $GITHUB_OUTPUT
+ - id: kernel-output
+ run: |
+ echo "kernel_files_url=https://fast-mirror.isrc.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/RVCK/OERV-RVCI/rvck-olk/latest" >> $GITHUB_OUTPUT
+ echo "summary_content=**skiped**" >> $GITHUB_OUTPUT
# kernel-build:
# needs: [parse-request]
@@ -96,28 +99,57 @@ jobs:
kernel_md5sum: ${{ needs.kernel_build.outputs.kernel_md5sum }}
initramfs_md5sum: ${{ needs.kernel_build.outputs.initramfs_md5sum }}
- multi-lava-trigger:
+ lava-trigger-qemu:
needs: [parse-request, kernel-build]
if: ${{ contains(needs.parse-request.outputs.NEED_RUN_JOB, 'lava-trigger') && !needs.parse-request.outputs.lava_template }}
- strategy:
- matrix:
- device: [qemu, sg2042, spacemit-k1-bananapi-f3, lpi4a]
- include:
- - device: qemu
- lava_template: lava-job-template/qemu/qemu-ltp.yaml
- - device: sg2042
- lava_template: lava-job-template/sg2042/sg2042-ltp.yaml
- - device: spacemit-k1-bananapi-f3
- lava_template: lava-job-template/spacemit-k1-bananapi-f3/k1-bpif3-ltp.yaml
- - device: lpi4a
- lava_template: lava-job-template/lpi4a/lpi4a-ltp.yaml
- name: lava-trigger-${{ matrix.device }}
uses: ./.github/workflows/lava-trigger.yml
secrets:
lava_token: ${{ secrets.LAVA_TOKEN }}
with:
testcase_repo: ${{ needs.parse-request.outputs.testcase_repo }}
- lava_template: ${{ matrix.lava_template }}
+ lava_template: 'lava-job-template/qemu/qemu-ltp.yaml'
+ testcase_path: ${{ needs.parse-request.outputs.testcase_path }}
+ kernel_files_url: ${{ needs.kernel-build.outputs.kernel_files_url }}
+ kernel_md5sum: ${{ needs.kernel_build.outputs.kernel_md5sum }}
+ initramfs_md5sum: ${{ needs.kernel_build.outputs.initramfs_md5sum }}
+
+ lava-trigger-sg2042:
+ needs: [parse-request, kernel-build]
+ if: ${{ contains(needs.parse-request.outputs.NEED_RUN_JOB, 'lava-trigger') && !needs.parse-request.outputs.lava_template }}
+ uses: ./.github/workflows/lava-trigger.yml
+ secrets:
+ lava_token: ${{ secrets.LAVA_TOKEN }}
+ with:
+ testcase_repo: ${{ needs.parse-request.outputs.testcase_repo }}
+ lava_template: 'lava-job-template/sg2042/sg2042-ltp.yaml'
+ testcase_path: ${{ needs.parse-request.outputs.testcase_path }}
+ kernel_files_url: ${{ needs.kernel-build.outputs.kernel_files_url }}
+ kernel_md5sum: ${{ needs.kernel_build.outputs.kernel_md5sum }}
+ initramfs_md5sum: ${{ needs.kernel_build.outputs.initramfs_md5sum }}
+
+ lava-trigger-k1:
+ needs: [parse-request, kernel-build]
+ if: ${{ contains(needs.parse-request.outputs.NEED_RUN_JOB, 'lava-trigger') && !needs.parse-request.outputs.lava_template }}
+ uses: ./.github/workflows/lava-trigger.yml
+ secrets:
+ lava_token: ${{ secrets.LAVA_TOKEN }}
+ with:
+ testcase_repo: ${{ needs.parse-request.outputs.testcase_repo }}
+ lava_template: 'lava-job-template/spacemit-k1-bananapi-f3/k1-bpif3-ltp.yaml'
+ testcase_path: ${{ needs.parse-request.outputs.testcase_path }}
+ kernel_files_url: ${{ needs.kernel-build.outputs.kernel_files_url }}
+ kernel_md5sum: ${{ needs.kernel_build.outputs.kernel_md5sum }}
+ initramfs_md5sum: ${{ needs.kernel_build.outputs.initramfs_md5sum }}
+
+ lava-trigger-lpi4a:
+ needs: [parse-request, kernel-build]
+ if: ${{ contains(needs.parse-request.outputs.NEED_RUN_JOB, 'lava-trigger') && !needs.parse-request.outputs.lava_template }}
+ uses: ./.github/workflows/lava-trigger.yml
+ secrets:
+ lava_token: ${{ secrets.LAVA_TOKEN }}
+ with:
+ testcase_repo: ${{ needs.parse-request.outputs.testcase_repo }}
+ lava_template: 'lava-job-template/lpi4a/lpi4a-ltp.yaml'
testcase_path: ${{ needs.parse-request.outputs.testcase_path }}
kernel_files_url: ${{ needs.kernel-build.outputs.kernel_files_url }}
kernel_md5sum: ${{ needs.kernel_build.outputs.kernel_md5sum }}
@@ -135,7 +167,7 @@ jobs:
collect-result:
if: ${{ !cancelled() && needs.parse-request.outputs.REPO }}
- needs: [parse-request, pre-check, kunit-test, kernel-build, lava-trigger, multi-lava-trigger, check-patch]
+ needs: [parse-request, pre-check, kunit-test, kernel-build, lava-trigger, lava-trigger-qemu, lava-trigger-sg2042, lava-trigger-k1, lava-trigger-lpi4a, check-patch]
permissions:
issues: write
pull-requests: write
@@ -158,21 +190,33 @@ jobs:
| :-: | :-: |
|kunit-test| ${{ needs.kunit-test.result }} |
|kernel-build| ${{ needs.kernel-build.result }} |
- |lava-trigger| ${{ needs.lava-trigger.result }} |
|check-patch| ${{ needs.check-patch.result }} |
+ |lava-trigger| ${{ needs.lava-trigger.result }} |
+ |lava-trigger-qemu| ${{ needs.lava-trigger-qemu.result }} |
+ |lava-trigger-sg2042| ${{ needs.lava-trigger-sg2042.result }} |
+ |lava-trigger-k1 | ${{ needs.lava-trigger-k1.result }} |
+ | lava-trigger-lpi4a | ${{ needs.lava-trigger-lpi4a.result }} |
${{ needs.kunit-test.outputs.summary_content }}
${{ needs.kernel-build.outputs.summary_content }}
- ${{ needs.lava-trigger.outputs.summary_content }}
-
${{ needs.check-patch.outputs.summary_content }}
+ ${{ needs.lava-trigger.outputs.summary_content }}
+
+ ${{ needs.lava-trigger-qemu.outputs.summary_content }}
+
+ ${{ needs.lava-trigger-sg2042.outputs.summary_content }}
+
+ ${{ needs.lava-trigger-k1.outputs.summary_content }}
+
+ ${{ needs.lava-trigger-lpi4a.outputs.summary_content }}
+
results:
- needs: [kunit-test, kernel-build, lava-trigger, check-patch, collect-result]
+ needs: [kunit-test, kernel-build, lava-trigger, lava-trigger-qemu, lava-trigger-sg2042, lava-trigger-k1, lava-trigger-lpi4a, check-patch, collect-result]
if: ${{ !cancelled() }}
runs-on: ubuntu-latest
steps:
@@ -183,4 +227,8 @@ jobs:
[ "${{ needs.kernel-build.result }}" != failure ] && \
[ "${{ needs.lava-trigger.result }}" != failure ] && \
[ "${{ needs.check-patch.result }}" != failure ] && \
- [ "${{ needs.collect-result.result }}" != failure ]
+ [ "${{ needs.collect-result.result }}" != failure ] && \
+ [ "${{ needs.lava-trigger-qemu.result }}" != failure ] && \
+ [ "${{ needs.lava-trigger-sg2042.result }}" != failure ] && \
+ [ "${{ needs.lava-trigger-k1.result }}" != failure ] && \
+ [ "${{ needs.lava-trigger-lpi4a.result }}" != failure ]
From d23ca45f0fb9f8ee354556f75dc02f587703fed3 Mon Sep 17 00:00:00 2001
From: lzyprime <2383518170@qq.com>
Date: Tue, 2 Dec 2025 20:14:02 +0800
Subject: [PATCH 04/11] fix lava trigger
---
.github/workflows/lava-trigger.yml | 29 ++++++++++++++++++++++++-----
1 file changed, 24 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/lava-trigger.yml b/.github/workflows/lava-trigger.yml
index 74922c0..4618128 100644
--- a/.github/workflows/lava-trigger.yml
+++ b/.github/workflows/lava-trigger.yml
@@ -206,22 +206,41 @@ jobs:
# qemu 需要设置ssh port
if data['device_type'] == 'qemu' and 'context' in data and 'extra_options' in data['context']:
data['context']['extra_options'] = [i.replace('hostfwd=tcp::10001-:22', f'hostfwd=tcp::{ssh_port}-:22') for i in list(data['context']['extra_options'])]
+
+ def get_action_by_name(name):
+ for action in data['actions']:
+ if name in action:
+ return action[name]
+ return None
+
+ deploy_action = get_action_by_name('deploy')
# add kernel md5sum
if kernel_md5sum:
- data['actions'][0]['deploy']['images']['kernel']['md5sum'] = kernel_md5sum
+ if data['device_type'] == 'qemu':
+ deploy_action['images']['kernel']['md5sum'] = kernel_md5sum
+ else:
+ deploy_action['kernel']['md5sum'] = kernel_md5sum
# rvck 需要initramfs
if repo_name == "rvck":
data['context']['extra_options'] = [i.replace('root=/dev/vda', 'root=/dev/vdb') for i in list(data['context']['extra_options'])]
- data['actions'][0]['deploy']['images']['initrd'] = {'image_arg': '-initrd {initrd}', 'url': initramfs_download_url}
+ if data['device_type'] == 'qemu':
+ deploy_action['images']['initrd'] = {'image_arg': '-initrd {initrd}', 'url': initramfs_download_url}
+ else:
+ deploy_action['initrd'] = {'image_arg': '-initrd {initrd}', 'url': initramfs_download_url}
+
if initramfs_md5sum:
- data['actions'][0]['deploy']['images']['initrd']['md5sum'] = initramfs_md5sum
+ if data['device_type'] == 'qemu':
+ deploy_action['images']['initrd']['md5sum'] = initramfs_md5sum
+ else:
+ deploy_action['initrd']['md5sum'] = initramfs_md5sum
+ test_action = get_action_by_name('test')
if len(testcase_ref):
- data['actions'][2]['test']['definitions'][0]['revision'] = testcase_ref
+ test_action['definitions'][0]['revision'] = testcase_ref
- data['actions'][2]['test']['definitions'][0].pop('parameters', None)
+ test_action['definitions'][0].pop('parameters', None)
with open(lava_template, 'w') as f:
f.write(yaml.dump(data, sort_keys=False))
From 25d0f408e35e2ede709c88f1070b47eeafd0994a Mon Sep 17 00:00:00 2001
From: lzyprime <2383518170@qq.com>
Date: Fri, 12 Dec 2025 23:57:25 +0800
Subject: [PATCH 05/11] =?UTF-8?q?feat:=20ltp=E9=BB=98=E8=AE=A4testsuite=20?=
=?UTF-8?q?=3D=20math,=20=E5=90=8C=E6=AD=A5=E5=A2=9E=E5=8A=A0/check?=
=?UTF-8?q?=E5=8F=82=E6=95=B0ltp=5Ftestsuite?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/codelint.yml | 0
.github/workflows/kernel-build.yml | 0
.github/workflows/lava-trigger.yml | 18 +++++++++++++++++-
.github/workflows/parse-rvck.yml | 16 ++++++----------
.github/workflows/rvck-actions.yml | 5 +++++
.github/workflows/update-status.yml | 0
6 files changed, 28 insertions(+), 11 deletions(-)
mode change 100755 => 100644 .github/workflows/codelint.yml
mode change 100755 => 100644 .github/workflows/kernel-build.yml
mode change 100755 => 100644 .github/workflows/update-status.yml
diff --git a/.github/workflows/codelint.yml b/.github/workflows/codelint.yml
old mode 100755
new mode 100644
diff --git a/.github/workflows/kernel-build.yml b/.github/workflows/kernel-build.yml
old mode 100755
new mode 100644
diff --git a/.github/workflows/lava-trigger.yml b/.github/workflows/lava-trigger.yml
index 4618128..a740041 100644
--- a/.github/workflows/lava-trigger.yml
+++ b/.github/workflows/lava-trigger.yml
@@ -47,6 +47,12 @@ on:
description: '需要执行的用例yaml 文件路径'
required: true
type: string
+
+ ltp_testsuite:
+ description: 'ltp 测试类型'
+ required: false
+ type: string
+ default: 'math'
secrets:
lava_token:
@@ -60,6 +66,7 @@ env:
testcase_ref: ${{ inputs.testcase_ref }}
lava_template: ${{ inputs.lava_template }}
testcase_path: ${{ inputs.testcase_path }}
+ ltp_testsuite: ${{ inputs.ltp_testsuite }}
lava_server: lava.oerv.ac.cn
lava_admin_token: ${{ secrets.lava_token }}
@@ -163,6 +170,8 @@ jobs:
testcase_path = os.getenv("testcase_path")
assert testcase_path, "Testcase URL is not set"
+ ltp_testsuite = os.getenv("ltp_testsuite", "")
+
job_name = os.getenv("job_name")
assert job_name, "Job name is not set"
@@ -198,6 +207,7 @@ jobs:
.replace("${testcase_repo}", f"https://github.com/{testcase_repo}.git")\
.replace("${testitem_name}", testitem_name)\
.replace("${testcase_path}", testcase_path)\
+ .replace("${ltp_testsuite}", ltp_testsuite)\
.replace("${dtb_url}", dtb_url)\
.replace("${ramdisk_url}", initramfs_download_url)
@@ -240,7 +250,13 @@ jobs:
if len(testcase_ref):
test_action['definitions'][0]['revision'] = testcase_ref
- test_action['definitions'][0].pop('parameters', None)
+ params = test_action['definitions'][0].pop('parameters', {})
+ for k in list(params.keys()):
+ if params[k].startswith("${"):
+ params.pop(k)
+ if params:
+ test_action['definitions'][0]['parameters'] = params
+
with open(lava_template, 'w') as f:
f.write(yaml.dump(data, sort_keys=False))
diff --git a/.github/workflows/parse-rvck.yml b/.github/workflows/parse-rvck.yml
index 224473a..8f5fdd2 100644
--- a/.github/workflows/parse-rvck.yml
+++ b/.github/workflows/parse-rvck.yml
@@ -43,6 +43,9 @@ on:
testcase_path:
description: lava 需要执行的用例yaml 文件路径
value: ${{ jobs.parse-request.outputs.testcase_path }}
+ ltp_testsuite:
+ description: ltp 测试类型
+ value: ${{ jobs.parse-request.outputs.ltp_testsuite }}
jobs:
@@ -58,6 +61,7 @@ jobs:
testcase_repo: ${{ steps.parse-request.outputs.testcase_repo }}
lava_template: ${{ steps.parse-request.outputs.lava_template }}
testcase_path: ${{ steps.parse-request.outputs.testcase_path }}
+ ltp_testsuite: ${{ steps.parse-request.outputs.ltp_testsuite }}
env:
GH_TOKEN: ${{ github.token }}
x_github_event: ${{ inputs.x_github_event }}
@@ -104,7 +108,7 @@ jobs:
str(i).split('=',maxsplit=1)
for i in shlex.split(comment.strip()[6:])]
}
- for k in ['lava_template','testcase_path', 'fetch', 'job']:
+ for k in ['lava_template','testcase_path', 'fetch', 'job', 'ltp_testsuite']:
if k in data:
res[k] = data.pop(k)
@@ -223,14 +227,6 @@ jobs:
echo "testcase_repo=$(cat testcase_repo || echo 'RVCK-Project/lavaci')" >> $GITHUB_OUTPUT
echo "lava_template=$(cat lava_template || echo '')" >> $GITHUB_OUTPUT
echo "testcase_path=$(cat testcase_path || echo 'lava-testcases/common-test/ltp/ltp.yaml')" >> $GITHUB_OUTPUT
-
- echo "REPO=$(cat REPO)" >> $GITHUB_ENV
- echo "FETCH_REF=$(cat FETCH_REF)" >> $GITHUB_ENV
- echo "SRC_REF=$(cat SRC_REF)" >> $GITHUB_ENV
- echo "ISSUE_ID=$(cat ISSUE_ID)" >> $GITHUB_ENV
- echo "NEED_RUN_JOB=$(cat job || echo 'kunit-test,kernel-build,check-patch,lava-trigger')" >> $GITHUB_ENV
- echo "testcase_repo=$(cat testcase_repo || echo 'https://github.com/RVCK-Project/lavaci.git')" >> $GITHUB_ENV
- echo "lava_template=$(cat lava_template || echo 'lava-job-template/qemu/qemu-ltp.yaml')" >> $GITHUB_ENV
- echo "testcase_path=$(cat testcase_path || echo 'lava-testcases/common-test/ltp/ltp.yaml')" >> $GITHUB_ENV
+ echo "ltp_testsuite=$(cat ltp_testsuite || echo 'math')" >> $GITHUB_OUTPUT
diff --git a/.github/workflows/rvck-actions.yml b/.github/workflows/rvck-actions.yml
index 17be580..c8eebd0 100644
--- a/.github/workflows/rvck-actions.yml
+++ b/.github/workflows/rvck-actions.yml
@@ -98,6 +98,7 @@ jobs:
kernel_files_url: ${{ needs.kernel-build.outputs.kernel_files_url }}
kernel_md5sum: ${{ needs.kernel_build.outputs.kernel_md5sum }}
initramfs_md5sum: ${{ needs.kernel_build.outputs.initramfs_md5sum }}
+ ltp_testsuite: ${{ needs.parse-request.outputs.ltp_testsuite }}
lava-trigger-qemu:
needs: [parse-request, kernel-build]
@@ -112,6 +113,7 @@ jobs:
kernel_files_url: ${{ needs.kernel-build.outputs.kernel_files_url }}
kernel_md5sum: ${{ needs.kernel_build.outputs.kernel_md5sum }}
initramfs_md5sum: ${{ needs.kernel_build.outputs.initramfs_md5sum }}
+ ltp_testsuite: ${{ needs.parse-request.outputs.ltp_testsuite }}
lava-trigger-sg2042:
needs: [parse-request, kernel-build]
@@ -126,6 +128,7 @@ jobs:
kernel_files_url: ${{ needs.kernel-build.outputs.kernel_files_url }}
kernel_md5sum: ${{ needs.kernel_build.outputs.kernel_md5sum }}
initramfs_md5sum: ${{ needs.kernel_build.outputs.initramfs_md5sum }}
+ ltp_testsuite: ${{ needs.parse-request.outputs.ltp_testsuite }}
lava-trigger-k1:
needs: [parse-request, kernel-build]
@@ -140,6 +143,7 @@ jobs:
kernel_files_url: ${{ needs.kernel-build.outputs.kernel_files_url }}
kernel_md5sum: ${{ needs.kernel_build.outputs.kernel_md5sum }}
initramfs_md5sum: ${{ needs.kernel_build.outputs.initramfs_md5sum }}
+ ltp_testsuite: ${{ needs.parse-request.outputs.ltp_testsuite }}
lava-trigger-lpi4a:
needs: [parse-request, kernel-build]
@@ -154,6 +158,7 @@ jobs:
kernel_files_url: ${{ needs.kernel-build.outputs.kernel_files_url }}
kernel_md5sum: ${{ needs.kernel_build.outputs.kernel_md5sum }}
initramfs_md5sum: ${{ needs.kernel_build.outputs.initramfs_md5sum }}
+ ltp_testsuite: ${{ needs.parse-request.outputs.ltp_testsuite }}
check-patch:
needs: [parse-request]
diff --git a/.github/workflows/update-status.yml b/.github/workflows/update-status.yml
old mode 100755
new mode 100644
From 2c6723f64797e6b4b13f2fbd6df9f65fbacc3bea Mon Sep 17 00:00:00 2001
From: lzyprime <2383518170@qq.com>
Date: Tue, 13 Jan 2026 20:38:42 +0800
Subject: [PATCH 06/11] =?UTF-8?q?=E6=81=A2=E5=A4=8Dkernel-build?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
进行完整流程测试
---
.github/workflows/rvck-actions.yml | 38 +++++++++++++++---------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/.github/workflows/rvck-actions.yml b/.github/workflows/rvck-actions.yml
index c8eebd0..fde4446 100644
--- a/.github/workflows/rvck-actions.yml
+++ b/.github/workflows/rvck-actions.yml
@@ -61,28 +61,28 @@ jobs:
kernel_src_repo: ${{ needs.parse-request.outputs.REPO }}
fetch_ref: ${{ needs.parse-request.outputs.FETCH_REF }}
- kernel-build:
- runs-on: 'ubuntu-latest'
- outputs:
- kernel_files_url: ${{ steps.kernel-output.outputs.kernel_files_url }}
- summary_content: ${{ steps.kernel-output.outputs.kernel_files_url }}
- needs: [parse-request]
- if: ${{ needs.parse-request.outputs.REPO && contains(needs.parse-request.outputs.NEED_RUN_JOB, 'kernel-build') }}
- steps:
- - id: kernel-output
- run: |
- echo "kernel_files_url=https://fast-mirror.isrc.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/RVCK/OERV-RVCI/rvck-olk/latest" >> $GITHUB_OUTPUT
- echo "summary_content=**skiped**" >> $GITHUB_OUTPUT
-
# kernel-build:
+ # runs-on: 'ubuntu-latest'
+ # outputs:
+ # kernel_files_url: ${{ steps.kernel-output.outputs.kernel_files_url }}
+ # summary_content: ${{ steps.kernel-output.outputs.kernel_files_url }}
# needs: [parse-request]
# if: ${{ needs.parse-request.outputs.REPO && contains(needs.parse-request.outputs.NEED_RUN_JOB, 'kernel-build') }}
- # uses: ./.github/workflows/kernel-build.yml
- # with:
- # commit_url: ${{ needs.parse-request.outputs.COMMIT_URL }}
- # upload_dir: ${{ github.repository }}/${{ github.event.comment.id && format('{0}_{1}', needs.parse-request.outputs.ISSUE_ID, github.event.comment.id) || needs.parse-request.outputs.ISSUE_ID }}
- # secrets:
- # rync_passphrase: ${{ secrets.RSYNC_PASSPHRASE }}
+ # steps:
+ # - id: kernel-output
+ # run: |
+ # echo "kernel_files_url=https://fast-mirror.isrc.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/RVCK/OERV-RVCI/rvck-olk/latest" >> $GITHUB_OUTPUT
+ # echo "summary_content=**skiped**" >> $GITHUB_OUTPUT
+
+ kernel-build:
+ needs: [parse-request]
+ if: ${{ needs.parse-request.outputs.REPO && contains(needs.parse-request.outputs.NEED_RUN_JOB, 'kernel-build') }}
+ uses: ./.github/workflows/kernel-build.yml
+ with:
+ commit_url: ${{ needs.parse-request.outputs.COMMIT_URL }}
+ upload_dir: ${{ github.repository }}/${{ github.event.comment.id && format('{0}_{1}', needs.parse-request.outputs.ISSUE_ID, github.event.comment.id) || needs.parse-request.outputs.ISSUE_ID }}
+ secrets:
+ rync_passphrase: ${{ secrets.RSYNC_PASSPHRASE }}
lava-trigger:
From 181b5987eca32fec74cf5725e9e081df508e5c21 Mon Sep 17 00:00:00 2001
From: lzyprime <2383518170@qq.com>
Date: Mon, 26 Jan 2026 21:31:02 +0800
Subject: [PATCH 07/11] =?UTF-8?q?fix:=20kernel=20=E4=B8=8B=E8=BD=BD?=
=?UTF-8?q?=E9=93=BE=E6=8E=A5=E6=8B=BC=E6=8E=A5=E9=94=99=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/codelint.yml | 0
.github/workflows/kernel-build.yml | 6 ++----
.github/workflows/kunit-test.yml | 4 +++-
.github/workflows/update-status.yml | 0
4 files changed, 5 insertions(+), 5 deletions(-)
mode change 100644 => 100755 .github/workflows/codelint.yml
mode change 100644 => 100755 .github/workflows/kernel-build.yml
mode change 100644 => 100755 .github/workflows/update-status.yml
diff --git a/.github/workflows/codelint.yml b/.github/workflows/codelint.yml
old mode 100644
new mode 100755
diff --git a/.github/workflows/kernel-build.yml b/.github/workflows/kernel-build.yml
old mode 100644
new mode 100755
index 4796686..36713da
--- a/.github/workflows/kernel-build.yml
+++ b/.github/workflows/kernel-build.yml
@@ -17,10 +17,8 @@ on:
description: '上传目录'
outputs:
- kernel_download_url:
- value: ${{ jobs.kernel-build.outputs.kernel_download_url }}
- initramfs_download_url:
- value: ${{ jobs.kernel-build.outputs.initramfs_download_url }}
+ kernel_files_url:
+ value: ${{ jobs.kernel-build.outputs.kernel_files_url }}
kernel_md5sum:
value: ${{ jobs.kernel-build.outputs.kernel_md5sum }}
initramfs_md5sum:
diff --git a/.github/workflows/kunit-test.yml b/.github/workflows/kunit-test.yml
index a8962b1..4511ac6 100644
--- a/.github/workflows/kunit-test.yml
+++ b/.github/workflows/kunit-test.yml
@@ -33,7 +33,7 @@ jobs:
env:
REPO: ${{ inputs.kernel_src_repo }}
fetch_ref: ${{ inputs.fetch_ref }}
- shell: bash
+ shell: bash -ex
run: |
rm -rf kernel-src || true
@@ -61,10 +61,12 @@ jobs:
- name: run kunit test
id: run-kunit-test
if: ${{ !cancelled() }}
+ shell: bash
run: |
cd kernel-src
make distclean
git checkout .
+ set -ex
ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- ./tools/testing/kunit/kunit.py run --arch=riscv > kunit.log 2>&1 || true
result="$(grep 'Testing complete' kunit.log || echo "kunit test failed")"
diff --git a/.github/workflows/update-status.yml b/.github/workflows/update-status.yml
old mode 100644
new mode 100755
From fac664dd495e057a3fb736f96b97397cf635fa7f Mon Sep 17 00:00:00 2001
From: lzyprime <2383518170@qq.com>
Date: Mon, 26 Jan 2026 21:57:55 +0800
Subject: [PATCH 08/11] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E6=97=A5?=
=?UTF-8?q?=E5=BF=97=E8=BE=93=E5=87=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/check-patch.yml | 29 ++++++++++-------------------
.github/workflows/kernel-build.yml | 18 ++++++++----------
.github/workflows/kunit-test.yml | 23 +++++++++++------------
.github/workflows/rvck-actions.yml | 5 +----
.github/workflows/update-status.yml | 2 +-
5 files changed, 31 insertions(+), 46 deletions(-)
diff --git a/.github/workflows/check-patch.yml b/.github/workflows/check-patch.yml
index dd8c513..cdc2160 100644
--- a/.github/workflows/check-patch.yml
+++ b/.github/workflows/check-patch.yml
@@ -36,7 +36,7 @@ jobs:
rm -rf kernel-src || true
git init kernel-src
cd kernel-src
- set -e
+ set -ex
git config user.email rvci@isrc.iscas.ac.cn
git config user.name rvci
git remote add origin "${REPO}"
@@ -70,7 +70,7 @@ jobs:
FETCH_REF: ${{ inputs.fetch_ref }}
SRC_REF: ${{ inputs.src_ref }}
run: |
-
+ set -x
patch_dir=patch-$(date +%Y%m%d%H%M%S)
cd "kernel-src"
@@ -83,36 +83,27 @@ jobs:
echo "begin to check patches..."
set +e
ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- ./scripts/checkpatch.pl "$patch_dir"/*.patch --show-types \
- --ignore CONFIG_DESCRIPTION,FILE_PATH_CHANGES,GERRIT_CHANGE_ID,GIT_COMMIT_ID,UNKNOWN_COMMIT_ID,FROM_SIGN_OFF_MISMATCH,REPEATED_WORD,COMMIT_COMMENT_SYMBOL,BLOCK_COMMENT_STYLE,AVOID_EXTERNS,AVOID_BUG > "$patch_dir/checkpatch.log"
+ --ignore CONFIG_DESCRIPTION,FILE_PATH_CHANGES,GERRIT_CHANGE_ID,GIT_COMMIT_ID,UNKNOWN_COMMIT_ID,FROM_SIGN_OFF_MISMATCH,REPEATED_WORD,COMMIT_COMMENT_SYMBOL,BLOCK_COMMENT_STYLE,AVOID_EXTERNS,AVOID_BUG | tee "$patch_dir/checkpatch.log"
total_error=$(grep -cE "ERROR" "$patch_dir/checkpatch.log")
total_warn=$(grep -cE "WARNING" "$patch_dir/checkpatch.log")
set -e
-
- echo "check patches result: $total_error errors, $total_warn warnings." > check-patch-result
cat > summary_content << EEE
## Check Patch Result
- | | |
- |---|---|
- | Total Errors | $total_error |
- | Total Warnings | $total_warn |
+
+ check patches result: $total_error errors, $total_warn warnings.
+ \`\`\`log
+ $(cat $patch_dir/checkpatch.log)
+ \`\`\`
+
EEE
echo "summary_content<> $GITHUB_OUTPUT
cat summary_content >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
-
- cat > $GITHUB_STEP_SUMMARY <<- EEE
- $(cat summary_content)
-
- ### Check Patch Log
-
- $(echo '```log')
- $(cat $patch_dir/checkpatch.log)
- $(echo '```')
- EEE
+ cat summary_content >> $GITHUB_STEP_SUMMARY
exit "${total_error}" # 有错误则步骤失败
diff --git a/.github/workflows/kernel-build.yml b/.github/workflows/kernel-build.yml
index 36713da..977f8a1 100755
--- a/.github/workflows/kernel-build.yml
+++ b/.github/workflows/kernel-build.yml
@@ -92,16 +92,14 @@ jobs:
else
result="Kernel build failed."
fi
-
- cat > summary << EEE
- ## Kernel Build Result
-
- $result
-
- $(cat "${kernel_result_dir}"/*/*.md5sum)
-
- EEE
-
+ {
+ echo "## Kernel Build Result"
+ echo ""
+ echo "- $result"
+ cat "${kernel_result_dir}"/*/*.md5sum 2>/dev/null | while read -r l; do
+ echo "- $l"
+ done
+ } | tee summary
cat summary > $GITHUB_STEP_SUMMARY
echo "summary_content<> $GITHUB_OUTPUT
diff --git a/.github/workflows/kunit-test.yml b/.github/workflows/kunit-test.yml
index 4511ac6..0d3bbe2 100644
--- a/.github/workflows/kunit-test.yml
+++ b/.github/workflows/kunit-test.yml
@@ -33,7 +33,7 @@ jobs:
env:
REPO: ${{ inputs.kernel_src_repo }}
fetch_ref: ${{ inputs.fetch_ref }}
- shell: bash -ex
+ shell: bash
run: |
rm -rf kernel-src || true
@@ -70,25 +70,24 @@ jobs:
ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- ./tools/testing/kunit/kunit.py run --arch=riscv > kunit.log 2>&1 || true
result="$(grep 'Testing complete' kunit.log || echo "kunit test failed")"
- cat >> summary << EEE
+ cat >> summary <<- EEE
## Kunit Test Result
- $result
+
+
+ $result
+
+ \`\`\`log
+ $(cat kunit.log)
+ \`\`\`
+
EEE
echo "sumary_content<> $GITHUB_OUTPUT
cat summary >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- cat > $GITHUB_STEP_SUMMARY <<- EEE
- $(cat summary)
-
- ### Kunit Test Log
-
- $(echo '```bash')
- $(cat kunit.log)
- $(echo '```')
- EEE
+ cat summary >> $GITHUB_STEP_SUMMARY
grep -q 'Testing complete' kunit.log # 设置步骤结果为失败或成功
diff --git a/.github/workflows/rvck-actions.yml b/.github/workflows/rvck-actions.yml
index fde4446..2fce639 100644
--- a/.github/workflows/rvck-actions.yml
+++ b/.github/workflows/rvck-actions.yml
@@ -185,12 +185,9 @@ jobs:
event_id: ${{ needs.pre-check.outputs.event_id }}
append_content: |
**测试完成**
-
-
+
详细结果:
- # RVCK result
-
| check | result |
| :-: | :-: |
|kunit-test| ${{ needs.kunit-test.result }} |
diff --git a/.github/workflows/update-status.yml b/.github/workflows/update-status.yml
index 5bafa08..a9f26f5 100755
--- a/.github/workflows/update-status.yml
+++ b/.github/workflows/update-status.yml
@@ -45,7 +45,7 @@ jobs:
steps:
- name: show-info
run: |
- cat > $GITHUB_STEP_SUMMARY << EEE
+ cat << EEE
| input | value |
|:-:|:-:|
|repo| $GH_REPO |
From f59616526896ec8250efcdf634fc48dc6be54b1b Mon Sep 17 00:00:00 2001
From: lzyprime <2383518170@qq.com>
Date: Tue, 27 Jan 2026 10:25:46 +0800
Subject: [PATCH 09/11] =?UTF-8?q?kernel=20=E4=B8=8B=E8=BD=BD=E5=9C=B0?=
=?UTF-8?q?=E5=9D=80=20=E6=94=B9=E4=B8=BAip=20=E8=AE=BF=E9=97=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/kernel-build.yml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/kernel-build.yml b/.github/workflows/kernel-build.yml
index 977f8a1..ca81e8c 100755
--- a/.github/workflows/kernel-build.yml
+++ b/.github/workflows/kernel-build.yml
@@ -76,7 +76,8 @@ jobs:
run: |
rsync -av --progress --mkpath "${kernel_result_dir}"/*/* rvck@10.30.190.110::RVCK/${{ inputs.upload_dir }}/
- echo "kernel_files_url=https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/RVCK/OERV-RVCI/${{ inputs.upload_dir }}" >> $GITHUB_OUTPUT
+ echo "kernel_files_domain_url=https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/RVCK/OERV-RVCI/${{ inputs.upload_dir }}" >> $GITHUB_OUTPUT
+ echo "kernel_files_url=http://10.30.190.110/openEuler-RISC-V/RVCK/OERV-RVCI/${{ inputs.upload_dir }}" >> $GITHUB_OUTPUT
echo "kernel_md5sum=$(awk '{print $1}' "${kernel_result_dir}"/*/Image.md5sum)" >> $GITHUB_OUTPUT
echo "initramfs_md5sum=$(awk '{print $1}' "${kernel_result_dir}"/*/initramfs.img.md5sum)" >> $GITHUB_OUTPUT
@@ -84,11 +85,12 @@ jobs:
if: ${{ !cancelled() }}
id: summary
env:
+ kernel_files_domain_url: ${{ steps.publish-kernel.outputs.kernel_files_domain_url }}
kernel_files_url: ${{ steps.publish-kernel.outputs.kernel_files_url }}
upload_dir: ${{ inputs.upload_dir }}
run: |
if [ "$kernel_files_url" != "" ]; then
- result="Kernel build succeeded: [${upload_dir}]($kernel_files_url)/"
+ result="Kernel build succeeded: [${upload_dir}]($kernel_files_domain_url)/"
else
result="Kernel build failed."
fi
From 94a53b73887d5886142789980ec86d0324ae07f4 Mon Sep 17 00:00:00 2001
From: lzyprime <2383518170@qq.com>
Date: Thu, 26 Feb 2026 21:26:59 +0800
Subject: [PATCH 10/11] =?UTF-8?q?rvck=E5=B0=86lava=5Ftemplate=E8=AE=BE?=
=?UTF-8?q?=E7=BD=AE=E6=88=90=E9=BB=98=E8=AE=A4=E5=80=BC=E4=B8=BAqemu-ltp,?=
=?UTF-8?q?=20=E8=BF=99=E6=A0=B7=E5=8F=AA=E6=89=A7=E8=A1=8Cqemu=E7=9A=84?=
=?UTF-8?q?=E6=B5=8B=E8=AF=95=EF=BC=8C=E8=B7=B3=E8=BF=87=E5=A4=9A=E8=AE=BE?=
=?UTF-8?q?=E5=A4=87=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/kernel-build.yml | 2 +-
.github/workflows/parse-rvck.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/kernel-build.yml b/.github/workflows/kernel-build.yml
index ca81e8c..d653bf0 100755
--- a/.github/workflows/kernel-build.yml
+++ b/.github/workflows/kernel-build.yml
@@ -66,7 +66,7 @@ jobs:
mkdir -p "${kernel_result_dir}"
docker run --privileged --rm \
-v "$(pwd)/${kernel_result_dir}:/srv/guix_result" \
- hub.oepkgs.net/oerv-ci/guix-kernel-cross-build:v19 \
+ hub.oepkgs.net/oerv-ci/guix-kernel-cross-build:v25 \
guix-cross-build ${{ inputs.commit_url }}
- name: publish kernel
diff --git a/.github/workflows/parse-rvck.yml b/.github/workflows/parse-rvck.yml
index 8f5fdd2..4bc28b6 100644
--- a/.github/workflows/parse-rvck.yml
+++ b/.github/workflows/parse-rvck.yml
@@ -225,7 +225,7 @@ jobs:
echo "COMMIT_URL=$(cat COMMIT_URL)" >> $GITHUB_OUTPUT
echo "NEED_RUN_JOB=$(cat job || echo 'kunit-test,kernel-build,check-patch,lava-trigger')" >> $GITHUB_OUTPUT
echo "testcase_repo=$(cat testcase_repo || echo 'RVCK-Project/lavaci')" >> $GITHUB_OUTPUT
- echo "lava_template=$(cat lava_template || echo '')" >> $GITHUB_OUTPUT
+ echo "lava_template=$(cat lava_template || echo 'lava-job-template/qemu/qemu-ltp.yaml')" >> $GITHUB_OUTPUT
echo "testcase_path=$(cat testcase_path || echo 'lava-testcases/common-test/ltp/ltp.yaml')" >> $GITHUB_OUTPUT
echo "ltp_testsuite=$(cat ltp_testsuite || echo 'math')" >> $GITHUB_OUTPUT
From e1c65fa21810f79118f0605126eb7388a58266d6 Mon Sep 17 00:00:00 2001
From: lzyprime <2383518170@qq.com>
Date: Wed, 28 Jan 2026 22:20:28 +0800
Subject: [PATCH 11/11] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20update=5Flatest=20?=
=?UTF-8?q?=E5=8F=82=E6=95=B0=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=88=B7=E6=96=B0?=
=?UTF-8?q?latest=E7=B4=A2=E5=BC=95=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/kernel-build.yml | 14 ++++++++++++--
.github/workflows/parse-rvck.yml | 7 ++++++-
.github/workflows/rvck-actions.yml | 1 +
3 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/kernel-build.yml b/.github/workflows/kernel-build.yml
index d653bf0..101b420 100755
--- a/.github/workflows/kernel-build.yml
+++ b/.github/workflows/kernel-build.yml
@@ -10,11 +10,17 @@ on:
内核源码仓库commit链接, 如:
- https://github.com/RVCK-Project/rvck/commit/32c7ba2136024ee1563416607e3265ccbee6a55e
- https://github.com/RVCK-Project/rvck-olk/pull/103
-
upload_dir:
type: string
required: true
description: '上传目录'
+ update_latest:
+ type: boolean
+ default: false
+ description: |
+ 是否刷新latest软链:
+ - rvck latest: https://fast-mirror.isrc.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/RVCK/OERV-RVCI/rvck/latest/
+ - rvck-olk latest: https://fast-mirror.isrc.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/RVCK/OERV-RVCI/rvck-olk/latest/
outputs:
kernel_files_url:
@@ -74,12 +80,16 @@ jobs:
env:
RSYNC_PASSWORD: ${{ secrets.rync_passphrase }}
run: |
-
+ set -x
rsync -av --progress --mkpath "${kernel_result_dir}"/*/* rvck@10.30.190.110::RVCK/${{ inputs.upload_dir }}/
echo "kernel_files_domain_url=https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/RVCK/OERV-RVCI/${{ inputs.upload_dir }}" >> $GITHUB_OUTPUT
echo "kernel_files_url=http://10.30.190.110/openEuler-RISC-V/RVCK/OERV-RVCI/${{ inputs.upload_dir }}" >> $GITHUB_OUTPUT
echo "kernel_md5sum=$(awk '{print $1}' "${kernel_result_dir}"/*/Image.md5sum)" >> $GITHUB_OUTPUT
echo "initramfs_md5sum=$(awk '{print $1}' "${kernel_result_dir}"/*/initramfs.img.md5sum)" >> $GITHUB_OUTPUT
+ if [ "${{ inputs.update_latest }}" = true ]; then
+ ln -s "../${{ inputs.upload_dir }}" latest
+ rsync -av --progress --mkpath latest rvck@10.30.190.110::RVCK/"$(echo "${{ inputs.commit_url }}" | awk -F'/' '{print $5}')/"
+ fi
- name: summary
if: ${{ !cancelled() }}
diff --git a/.github/workflows/parse-rvck.yml b/.github/workflows/parse-rvck.yml
index 4bc28b6..453922b 100644
--- a/.github/workflows/parse-rvck.yml
+++ b/.github/workflows/parse-rvck.yml
@@ -46,6 +46,9 @@ on:
ltp_testsuite:
description: ltp 测试类型
value: ${{ jobs.parse-request.outputs.ltp_testsuite }}
+ update_latest:
+ description: 是否在构建成功后刷新内核latest软链
+ value: ${{ jobs.parse-request.outputs.update_latest == 'true' }}
jobs:
@@ -62,6 +65,7 @@ jobs:
lava_template: ${{ steps.parse-request.outputs.lava_template }}
testcase_path: ${{ steps.parse-request.outputs.testcase_path }}
ltp_testsuite: ${{ steps.parse-request.outputs.ltp_testsuite }}
+ update_latest: ${{ steps.parse-request.outputs.update_latest }}
env:
GH_TOKEN: ${{ github.token }}
x_github_event: ${{ inputs.x_github_event }}
@@ -108,7 +112,7 @@ jobs:
str(i).split('=',maxsplit=1)
for i in shlex.split(comment.strip()[6:])]
}
- for k in ['lava_template','testcase_path', 'fetch', 'job', 'ltp_testsuite']:
+ for k in ['lava_template','testcase_path', 'fetch', 'job', 'ltp_testsuite', 'update_latest']:
if k in data:
res[k] = data.pop(k)
@@ -228,5 +232,6 @@ jobs:
echo "lava_template=$(cat lava_template || echo 'lava-job-template/qemu/qemu-ltp.yaml')" >> $GITHUB_OUTPUT
echo "testcase_path=$(cat testcase_path || echo 'lava-testcases/common-test/ltp/ltp.yaml')" >> $GITHUB_OUTPUT
echo "ltp_testsuite=$(cat ltp_testsuite || echo 'math')" >> $GITHUB_OUTPUT
+ echo "update_latest=$(cat update_latest || echo false)" >> $GITHUB_OUTPUT
diff --git a/.github/workflows/rvck-actions.yml b/.github/workflows/rvck-actions.yml
index 2fce639..6a4a3e2 100644
--- a/.github/workflows/rvck-actions.yml
+++ b/.github/workflows/rvck-actions.yml
@@ -81,6 +81,7 @@ jobs:
with:
commit_url: ${{ needs.parse-request.outputs.COMMIT_URL }}
upload_dir: ${{ github.repository }}/${{ github.event.comment.id && format('{0}_{1}', needs.parse-request.outputs.ISSUE_ID, github.event.comment.id) || needs.parse-request.outputs.ISSUE_ID }}
+ update_latest: ${{ needs.parse-request.outputs.update_latest == 'true' }}
secrets:
rync_passphrase: ${{ secrets.RSYNC_PASSPHRASE }}