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 }}