From eee732d1e08d10b1f92b436ecc1655f0f756dfab Mon Sep 17 00:00:00 2001 From: Eduard Kaverinskyi Date: Tue, 17 Dec 2024 17:26:17 +0100 Subject: [PATCH 1/7] .github/workflows/test.yml: Improve test workflow (#200) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Eduard Kaverinskyi Signed-off-by: Michał Iwanicki Co-authored-by: Michał Iwanicki --- .github/workflows/ci.yml | 3 + .github/workflows/develop.yml | 3 + .github/workflows/test.yml | 144 ++++++++++++++++++++++------------ .github/workflows/weekly.yml | 3 + 4 files changed, 102 insertions(+), 51 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a6ba4db6..a6ff8b5b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,9 @@ on: - 'v*' - '!v*-rc*' +concurrency: + group: ${{ github.workflow }} + jobs: build: uses: ./.github/workflows/build.yml diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index 36f137fb..f45c6dea 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -5,6 +5,9 @@ on: tags: - 'v*-rc*' +concurrency: + group: ${{ github.workflow }} + jobs: build: uses: ./.github/workflows/build.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d1d8ee20..34531883 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,57 +3,114 @@ name: Run DTS tests on: pull_request: branches: - - 'main' + - "main" + +concurrency: + group: ${{ github.workflow }} + jobs: build-dts: uses: ./.github/workflows/build.yml with: cacheless: false + + checkout-osfv: + runs-on: dts-builder + steps: + - name: Checkout OSFV repo + uses: actions/checkout@v4 + with: + repository: "Dasharo/open-source-firmware-validation" + path: "open-source-firmware-validation" + submodules: "recursive" + ref: "develop" + run-tests: name: Run DTS tests - needs: build-dts + needs: [checkout-osfv, build-dts] runs-on: labels: dts-builder + strategy: + fail-fast: false + matrix: + include: + - test: msi_comm + dpp_download_key: $MSI_DOWNLOAD + dpp_logs_key: $MSI_LOGS + log_file: output_msi.log + + - test: msi_dpp + dpp_download_key: $MSI_DOWNLOAD + dpp_logs_key: $MSI_LOGS + log_file: output_msi.log + + - test: msi_heads + dpp_download_key: $MSI_HEADS_DOWNLOAD + dpp_logs_key: $MSI_HEADS_LOGS + log_file: output_msi_heads.log + + - test: optiplex_dpp + dpp_download_key: $OPTIPLEX_DOWNLOAD + dpp_logs_key: $OPTIPLEX_LOGS + log_file: output_nc_heads.log + + - test: novacustom_heads + dpp_download_key: $NOVACUSTOM_HEADS_DOWNLOAD + dpp_logs_key: $NOVACUSTOM_HEADS_LOGS + log_file: output_nc_heads.log + + - test: novacustom_comm + dpp_download_key: $NOVACUSTOM_HEADS_DOWNLOAD + dpp_logs_key: $NOVACUSTOM_HEADS_LOGS + log_file: output_nc_comm.log + + - test: pcengines_dpp + dpp_download_key: $PCENGINES_DOWNLOAD + dpp_logs_key: $PCENGINES_LOGS + log_file: output_pcengines.log + + - test: pcengines_seabios + dpp_download_key: $PCENGINES_SEABIOS_DOWNLOAD + dpp_logs_key: $PCENGINES_LOGS + log_file: output_pcengines_seabios.log + steps: - - name: Checkout OSFV repo - uses: actions/checkout@v4 - with: - repository: 'Dasharo/open-source-firmware-validation' - path: 'open-source-firmware-validation' - submodules: 'recursive' - ref: 'develop' - name: Run IPXE server shell: bash run: | - cd open-source-firmware-validation - ./scripts/ci/ipxe-run.sh ../build/tmp/deploy/images/genericx86-64/dts-base-image-genericx86-64.cpio.gz ../build/tmp/deploy/images/genericx86-64/bzImage & + ./open-source-firmware-validation/scripts/ci/ipxe-run.sh \ + build/tmp/deploy/images/genericx86-64/dts-base-image-genericx86-64.cpio.gz \ + build/tmp/deploy/images/genericx86-64/bzImage & + - name: Install requirements shell: bash run: | cd open-source-firmware-validation - python3 -m virtualenv venv + if [ ! -d "venv" ]; then + python3 -m venv venv + fi source venv/bin/activate pip install -r requirements.txt + - name: Run QEMU shell: bash id: run_qemu run: | cd open-source-firmware-validation/scripts/ci - mkdir qemu-data + mkdir -p qemu-data touch qemu-data/hdd.qcow2 ./qemu-run.sh nographic os & + - name: Create directory for logs shell: bash - id: log_dirs + id: create_log_dirs run: | - timestamp=$(date -u +%Y-%m-%dT%H:%M:%S%Z) - directory="/tmp/dts-test-ci-${timestamp}" - mkdir $directory - echo "directory=$directory" >> "$GITHUB_OUTPUT" - - name: Run tests + LOG_DIR="/tmp/dts-test-ci-${{ github.run_id }}/${{ matrix.test }}" + mkdir -p $LOG_DIR + echo "LOG_DIR=$LOG_DIR" >> $GITHUB_ENV + + - name: Run ${{ matrix.test }} shell: bash - env: - LOG_DIR: ${{ steps.log_dirs.outputs.directory }} run: | cd open-source-firmware-validation source venv/bin/activate @@ -67,43 +124,28 @@ jobs: source ~/.secrets/dpp-keys ip_addr=$(ip -o -4 addr list eno2 | awk '{print $4}' | cut -d/ -f1) - robot -L TRACE -v config:qemu -v rte_ip:127.0.0.1 -v snipeit:no \ - -v dpp_password:$DPP_PASSWORD -v dpp_download_key:$MSI_DOWNLOAD \ - -v dpp_logs_key:$MSI_LOGS -v boot_dts_from_ipxe_shell:True \ - -v dts_ipxe_link:http://${ip_addr}:4321/dts.ipxe \ - -i "msi_comm" -i "msi_dpp" dts/dts-e2e.robot 2>&1 | tee $LOG_DIR/output_msi.log | grep "| PASS |\|| FAIL |" - - robot -L TRACE -v config:qemu -v rte_ip:127.0.0.1 -v snipeit:no \ - -v dpp_password:$DPP_PASSWORD -v dpp_download_key:$MSI_HEADS_DOWNLOAD \ - -v dpp_logs_key:$MSI_HEADS_LOGS -v boot_dts_from_ipxe_shell:True \ - -v dts_ipxe_link:http://${ip_addr}:4321/dts.ipxe \ - -i "msi_heads" dts/dts-e2e.robot 2>&1 | tee $LOG_DIR/output_msi_heads.log | grep "| PASS |\|| FAIL |" - - robot -L TRACE -v config:qemu -v rte_ip:127.0.0.1 -v snipeit:no \ - -v dpp_password:$DPP_PASSWORD -v dpp_download_key:$OPTIPLEX_DOWNLOAD \ - -v dpp_logs_key:$OPTIPLEX_LOGS -v boot_dts_from_ipxe_shell:True \ - -v dts_ipxe_link:http://${ip_addr}:4321/dts.ipxe \ - -i "optiplex_dpp" dts/dts-e2e.robot 2>&1 | tee $LOG_DIR/output_optiplex.log | grep "| PASS |\|| FAIL |" - - robot -L TRACE -v config:qemu -v rte_ip:127.0.0.1 -v snipeit:no \ - -v dpp_password:$DPP_PASSWORD -v dpp_download_key:$NOVACUSTOM_HEADS_DOWNLOAD \ - -v dpp_logs_key:$NOVACUSTOM_HEADS_LOGS -v boot_dts_from_ipxe_shell:True \ - -v dts_ipxe_link:http://${ip_addr}:4321/dts.ipxe \ - -i "novacustom_heads" -i "novacustom_comm" dts/dts-e2e.robot 2>&1 | tee $LOG_DIR/output_nc_heads.log | grep "| PASS |\|| FAIL |" + echo "::add-mask::${{matrix.dpp_download_key}}" + echo "::add-mask::${{matrix.dpp_logs_key}}" + echo "::add-mask::$DPP_PASSWORD" - robot -L TRACE -v config:qemu -v rte_ip:127.0.0.1 -v snipeit:no \ - -v dpp_password:$DPP_PASSWORD -v dpp_download_key:$PCENGINES_DOWNLOAD \ - -v dpp_logs_key:$PCENGINES_LOGS -v boot_dts_from_ipxe_shell:True \ + RTE_IP="127.0.0.1" CONFIG="qemu" ./scripts/run.sh dts/dts-e2e.robot -- \ + -L TRACE \ + -v snipeit:no \ + -v dpp_password:$DPP_PASSWORD \ + -v dpp_download_key:${{matrix.dpp_download_key}} \ + -v dpp_logs_key:"${{matrix.dpp_logs_key}}" \ + -v boot_dts_from_ipxe_shell:True \ -v dts_ipxe_link:http://${ip_addr}:4321/dts.ipxe \ - -i "pcengines_dpp" dts/dts-e2e.robot 2>&1 | tee $LOG_DIR/output_pcengines.log | grep "| PASS |\|| FAIL |" + -i ${{ matrix.test }} 2>&1 \ + | tee ${{ env.LOG_DIR }}/${{ matrix.log_file }} | grep "| PASS |\|| FAIL |" - name: Copy log shell: bash if: ${{ !cancelled() }} - env: - LOG_DIR: ${{ steps.log_dirs.outputs.directory }} run: | - cp open-source-firmware-validation/log.html $LOG_DIR/log.html + cd open-source-firmware-validation + find logs -type f -name "*log.html" -exec mv {} "${{ env.LOG_DIR }}/${{ matrix.test }}_log.html" \; + cleanup: name: Cleanup if: always() diff --git a/.github/workflows/weekly.yml b/.github/workflows/weekly.yml index 59ddee1a..400f973a 100644 --- a/.github/workflows/weekly.yml +++ b/.github/workflows/weekly.yml @@ -5,6 +5,9 @@ on: - cron: '0 8 * * 6' workflow_dispatch: +concurrency: + group: ${{ github.workflow }} + jobs: build: uses: ./.github/workflows/build.yml From 90fbbe71890b3889763c9cec1605cd9b639dec07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Wed, 18 Dec 2024 12:05:15 +0100 Subject: [PATCH 2/7] dts-scripts: fix acpidump command in HCL report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Iwanicki --- meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb b/meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb index aa91a81f..344e17a1 100644 --- a/meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb +++ b/meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSES/Apache-2.0.txt;md5=c846ebb396f8b174b10ded477 PV = "0.1+git${SRCPV}" SRC_URI = "git://github.com/Dasharo/dts-scripts;protocol=https;branch=main" -SRCREV = "6f4b946a30c12e061ddc18abc4958ea6f7b3788e" +SRCREV = "417100811e9826ae4e8b33bd76f5ac9724a73005" S = "${WORKDIR}/git" From aae22560def34daf6c4cc3412aa1ace69984b6c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Iwanicki?= Date: Wed, 18 Dec 2024 10:20:54 +0100 Subject: [PATCH 3/7] kas: cache.yml: don't use local hash equivalence server MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Iwanicki --- kas/cache.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kas/cache.yml b/kas/cache.yml index a327d674..b88cd907 100644 --- a/kas/cache.yml +++ b/kas/cache.yml @@ -9,3 +9,5 @@ local_conf_header: INHERIT += "own-mirrors" LOCAL_PREMIRROR_SERVER ?= "cache.dasharo.com" PROJECT_NAME ?= "yocto/dts" + BB_SIGNATURE_HANDLER = "OEBasicHash" + BB_HASHSERVE = "" From 823521220ad7a1846c7a9fa3d5145b8019aff566 Mon Sep 17 00:00:00 2001 From: Daniil Klimuk Date: Wed, 18 Dec 2024 13:00:12 +0100 Subject: [PATCH 4/7] distro: dts: dts-scripts: change DTS Extensions message Signed-off-by: Daniil Klimuk --- meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb b/meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb index 344e17a1..563e16ab 100644 --- a/meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb +++ b/meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSES/Apache-2.0.txt;md5=c846ebb396f8b174b10ded477 PV = "0.1+git${SRCPV}" SRC_URI = "git://github.com/Dasharo/dts-scripts;protocol=https;branch=main" -SRCREV = "417100811e9826ae4e8b33bd76f5ac9724a73005" +SRCREV = "1cdf6313557f03895b446d2dd8bbd477a02e7a84" S = "${WORKDIR}/git" From 712c69a0c23759726a52d2180a6d23597db4977d Mon Sep 17 00:00:00 2001 From: Daniil Klimuk Date: Fri, 20 Dec 2024 15:46:52 +0100 Subject: [PATCH 5/7] distro: dts: dts-scripts: fix for empty credentials Signed-off-by: Daniil Klimuk --- meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb b/meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb index 563e16ab..bdb0bf30 100644 --- a/meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb +++ b/meta-dts-distro/recipes-dts/dts-scripts/dts-scripts_git.bb @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSES/Apache-2.0.txt;md5=c846ebb396f8b174b10ded477 PV = "0.1+git${SRCPV}" SRC_URI = "git://github.com/Dasharo/dts-scripts;protocol=https;branch=main" -SRCREV = "1cdf6313557f03895b446d2dd8bbd477a02e7a84" +SRCREV = "f1cd35eae95fb19a3d55d1388d06b2f503186cd5" S = "${WORKDIR}/git" From bfd7737a848814da5232c3f0aa5e4cebd04a53ee Mon Sep 17 00:00:00 2001 From: Daniil Klimuk Date: Fri, 20 Dec 2024 16:15:05 +0100 Subject: [PATCH 6/7] distro: bump to 2.1.2 Signed-off-by: Daniil Klimuk --- meta-dts-distro/conf/distro/dts-distro.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta-dts-distro/conf/distro/dts-distro.conf b/meta-dts-distro/conf/distro/dts-distro.conf index 38bd455c..540e88f8 100644 --- a/meta-dts-distro/conf/distro/dts-distro.conf +++ b/meta-dts-distro/conf/distro/dts-distro.conf @@ -4,7 +4,7 @@ DISTRO = "dts-distro" # distro name DISTRO_NAME = "Dasharo Tools Suite" -DISTRO_VERSION = "2.1.1" +DISTRO_VERSION = "2.1.2" SDK_VENDOR = "-dtssdk" MAINTAINER = "3mdeb Sp. z o. o. " From c6f8335694fc69f4bf64e2b79bb7fda2bacf721b Mon Sep 17 00:00:00 2001 From: Daniil Klimuk Date: Fri, 20 Dec 2024 16:30:30 +0100 Subject: [PATCH 7/7] CHANGELOG.md: add 2.1.2 Signed-off-by: Daniil Klimuk --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b0fa16a..98c0c153 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,20 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## [2.1.2] - 2024-12-20 + +### Changed +- .github/workflows/test.yml: Improve test workflow (#200) +- kas: cache.yml: don't use local hash equivalence server +- distro: bump to 2.1.2 + + +### Fixed +- dts-scripts: fix acpidump command in HCL report +- distro: dts: dts-scripts: fix for empty credentials +- distro: dts: dts-scripts: change DTS Extensions message + + ## [2.1.1] - 2024-12-13 ### Added @@ -984,6 +998,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Initial public release - Fix README +[2.1.2]: https://github.com/Dasharo/meta-dts/compare/v2.1.1..v2.1.2 [2.1.1]: https://github.com/Dasharo/meta-dts/compare/v2.1.0..v2.1.1 [2.1.0]: https://github.com/Dasharo/meta-dts/compare/v2.0.1-rc3..v2.1.0 [2.0.1-rc3]: https://github.com/Dasharo/meta-dts/compare/v2.0.1-rc2..v2.0.1-rc3