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 824764e..f1798e3 100755 --- 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: @@ -39,8 +37,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,38 +76,37 @@ 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_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_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_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_url" != "" ]; then - result="Kernel build succeeded: [${upload_dir}]($(dirname ${kernel_url}))/" + if [ "$kernel_files_url" != "" ]; then + result="Kernel build succeeded: [${upload_dir}]($kernel_files_domain_url)/" 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 cat summary >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT - [ "$kernel_url" != "" ] # 设置步骤状态 + [ "$kernel_files_url" != "" ] # 设置步骤状态 diff --git a/.github/workflows/kunit-test.yml b/.github/workflows/kunit-test.yml index a8962b1..0d3bbe2 100644 --- a/.github/workflows/kunit-test.yml +++ b/.github/workflows/kunit-test.yml @@ -61,32 +61,33 @@ 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")" - 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/lava-trigger.yml b/.github/workflows/lava-trigger.yml index f7f2310..7afadc3 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 @@ -44,30 +40,33 @@ on: lava_template: description: 'lava测试模板' - required: true + required: false type: string testcase_path: description: '需要执行的用例yaml 文件路径' required: true type: string - - # testcase_params: - # description: '测试用例参数,[key=value ...]' - # type: string - # required: false + + ltp_testsuite: + description: 'ltp 测试类型' + required: false + type: string + default: 'math' 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 }} + ltp_testsuite: ${{ inputs.ltp_testsuite }} lava_server: lava.oerv.ac.cn lava_admin_token: ${{ secrets.lava_token }} @@ -100,14 +99,21 @@ jobs: input_rootfs_download_url: ${{ inputs.rootfs_download_url }} input_kernel_md5sum: ${{ inputs.kernel_md5sum }} 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#*/} 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 +122,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 +151,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 @@ -153,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" @@ -174,9 +193,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,29 +206,57 @@ 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("${ltp_testsuite}", ltp_testsuite)\ + .replace("${dtb_url}", dtb_url)\ + .replace("${ramdisk_url}", initramfs_download_url) data = yaml.safe_load(content) # 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 - - data['actions'][2]['test']['definitions'][0].pop('parameters', None) + test_action['definitions'][0]['revision'] = testcase_ref + + 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 1c1a755..b18c417 100644 --- a/.github/workflows/parse-rvck.yml +++ b/.github/workflows/parse-rvck.yml @@ -37,12 +37,27 @@ on: testcase_repo: description: lava 仓库地址 value: ${{ jobs.parse-request.outputs.testcase_repo }} - lava_template: - description: lava测试模板 - value: ${{ jobs.parse-request.outputs.lava_template }} testcase_path: description: lava 需要执行的用例yaml 文件路径 value: ${{ jobs.parse-request.outputs.testcase_path }} + lava_hardware: + description: 需要执行lava的硬件 + value: ${{ jobs.parse-request.outputs.lava_hardware }} + ltp_testsuite: + description: ltp 测试类型 + value: ${{ jobs.parse-request.outputs.ltp_testsuite }} + lava_template_qemu: + description: lava qemu 测试模板 + value: ${{ jobs.parse-request.outputs.lava_template_qemu }} + lava_template_sg2042: + description: lava sg2042 测试模板 + value: ${{ jobs.parse-request.outputs.lava_template_sg2042 }} + lava_template_k1: + description: lava k1 测试模板 + value: ${{ jobs.parse-request.outputs.lava_template_k1 }} + lava_template_lpi4a: + description: lava lpi4a 测试模板 + value: ${{ jobs.parse-request.outputs.lava_template_lpi4a }} jobs: @@ -56,8 +71,13 @@ jobs: COMMIT_URL: ${{ steps.parse-request.outputs.COMMIT_URL }} NEED_RUN_JOB: ${{ steps.parse-request.outputs.NEED_RUN_JOB }} testcase_repo: ${{ steps.parse-request.outputs.testcase_repo }} - lava_template: ${{ steps.parse-request.outputs.lava_template }} + lava_template_qemu: ${{ steps.parse-request.outputs.lava_template_qemu }} + lava_template_sg2042: ${{ steps.parse-request.outputs.lava_template_sg2042 }} + lava_template_k1: ${{ steps.parse-request.outputs.lava_template_k1 }} + lava_template_lpi4a: ${{ steps.parse-request.outputs.lava_template_lpi4a }} testcase_path: ${{ steps.parse-request.outputs.testcase_path }} + lava_hardware: ${{ steps.parse-request.outputs.lava_hardware }} + ltp_testsuite: ${{ steps.parse-request.outputs.ltp_testsuite }} env: GH_TOKEN: ${{ github.token }} x_github_event: ${{ inputs.x_github_event }} @@ -80,7 +100,25 @@ jobs: import json import os + + DEFAULT_testcase_path = "lava-testcases/common-test/ltp/ltp.yaml" + + lava_hardware_testcase_map = { + "qemu": { + "lava-testcases/common-test/ltp/ltp.yaml": "lava-job-template/qemu/qemu-ltp.yaml", + }, + "sg2042": { + "lava-testcases/common-test/ltp/ltp.yaml": "lava-job-template/sg2042/sg2042-ltp.yaml", + }, + "k1": { + "lava-testcases/common-test/ltp/ltp.yaml": "lava-job-template/spacemit-k1-bananapi-f3/k1-bpif3-ltp.yaml", + }, + "lpi4a": { + "lava-testcases/common-test/ltp/ltp.yaml": "lava-job-template/lpi4a/lpi4a-ltp.yaml", + }, + } + DEFAULT_lava_hardware = ",".join(list(lava_hardware_testcase_map.keys())) def write_properties_file(info: dict): for k, v in info.items(): @@ -106,7 +144,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_hardware', 'testcase_path', 'fetch', 'job', 'ltp_testsuite']: if k in data: res[k] = data.pop(k) @@ -150,6 +188,12 @@ jobs: res["FETCH_REF"] = res.pop("fetch") res["COMMIT_URL"] = f'{payload["repository"]["html_url"]}/commit/{res["FETCH_REF"]}' + ## lava info + res.setdefault("testcase_path", DEFAULT_testcase_path) + + for hardware in res.setdefault("lava_hardware", DEFAULT_lava_hardware).split(","): + res[f"lava_template_{hardware}"] = lava_hardware_testcase_map.get(hardware, {}).get(res['testcase_path'], '') + write_properties_file(res) @@ -223,16 +267,13 @@ 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 "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 "lava_hardware=$(cat lava_hardware || echo '')" >> $GITHUB_OUTPUT + for f in lava_template_*; do + [ ! -f "$f" ] && continue + echo "$f=$(cat "$f")" >> $GITHUB_OUTPUT + done + + echo "testcase_path=$(cat testcase_path || echo '')" >> $GITHUB_OUTPUT + echo "ltp_testsuite=$(cat ltp_testsuite || echo 'math')" >> $GITHUB_OUTPUT 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 a4e786f..612e003 100644 --- a/.github/workflows/rvck-actions.yml +++ b/.github/workflows/rvck-actions.yml @@ -44,8 +44,8 @@ jobs: | head ref | ${{ needs.parse-request.outputs.FETCH_REF }} | | base ref | ${{ needs.parse-request.outputs.SRC_REF }} | |LAVA repo | ${{ needs.parse-request.outputs.testcase_repo }} | - |LAVA Template | ${{ needs.parse-request.outputs.lava_template }} | - |Testcase path | ${{ needs.parse-request.outputs.testcase_path }} | + |LAVA hardware | ${{ needs.parse-request.outputs.lava_hardware }} | + |LAVA Testcase path | ${{ needs.parse-request.outputs.testcase_path }} | |need run job | ${{ needs.parse-request.outputs.NEED_RUN_JOB }} | @@ -72,20 +72,65 @@ jobs: rync_passphrase: ${{ secrets.RSYNC_PASSPHRASE }} - lava-trigger: + lava-trigger-qemu: needs: [parse-request, kernel-build] + if: ${{ needs.parse-request.outputs.lava_template_qemu }} 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 }} + lava_template: ${{ needs.parse-request.outputs.lava_template_qemu }} 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 }} + ltp_testsuite: ${{ needs.parse-request.outputs.ltp_testsuite }} + + lava-trigger-sg2042: + needs: [parse-request, kernel-build] + if: ${{ needs.parse-request.outputs.lava_template_sg2042 }} + uses: ./.github/workflows/lava-trigger.yml + secrets: + lava_token: ${{ secrets.LAVA_TOKEN }} + with: + testcase_repo: ${{ needs.parse-request.outputs.testcase_repo }} + lava_template: ${{ needs.parse-request.outputs.lava_template_sg2042 }} + 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 }} + ltp_testsuite: ${{ needs.parse-request.outputs.ltp_testsuite }} + + lava-trigger-k1: + needs: [parse-request, kernel-build] + if: ${{ needs.parse-request.outputs.lava_template_k1 }} + uses: ./.github/workflows/lava-trigger.yml + secrets: + lava_token: ${{ secrets.LAVA_TOKEN }} + with: + testcase_repo: ${{ needs.parse-request.outputs.testcase_repo }} + lava_template: ${{ needs.parse-request.outputs.lava_template_k1 }} + 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 }} + ltp_testsuite: ${{ needs.parse-request.outputs.ltp_testsuite }} + + lava-trigger-lpi4a: + needs: [parse-request, kernel-build] + if: ${{ needs.parse-request.outputs.lava_template_lpi4a }} + uses: ./.github/workflows/lava-trigger.yml + secrets: + lava_token: ${{ secrets.LAVA_TOKEN }} + with: + testcase_repo: ${{ needs.parse-request.outputs.testcase_repo }} + lava_template: ${{ needs.parse-request.outputs.lava_template_lpi4a }} + 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 }} + ltp_testsuite: ${{ needs.parse-request.outputs.ltp_testsuite }} check-patch: needs: [parse-request] @@ -99,7 +144,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-qemu, lava-trigger-sg2042, lava-trigger-k1, lava-trigger-lpi4a, check-patch] permissions: issues: write pull-requests: write @@ -112,31 +157,37 @@ jobs: event_id: ${{ needs.pre-check.outputs.event_id }} append_content: | **测试完成** -
- +
详细结果: - # RVCK result - | check | result | | :-: | :-: | |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-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-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-qemu, lava-trigger-sg2042, lava-trigger-k1, lava-trigger-lpi4a, check-patch, collect-result] if: ${{ !cancelled() }} runs-on: ubuntu-latest steps: @@ -145,6 +196,9 @@ jobs: # 所有需要运行的job都成功则整体成功 [ "${{ needs.kunit-test.result }}" != failure ] && \ [ "${{ 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 ] 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 |