mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-23 14:41:31 +02:00
run-kola-tests.yaml: test report merge job
Signed-off-by: Thilo Fromm <thilofromm@microsoft.com>
This commit is contained in:
parent
f07cb5f781
commit
f8bf7fa4c7
130
.github/workflows/run-kola-tests.yaml
vendored
130
.github/workflows/run-kola-tests.yaml
vendored
@ -26,8 +26,6 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
arch: ["amd64", "arm64"]
|
arch: ["amd64", "arm64"]
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Prepare machine
|
- name: Prepare machine
|
||||||
@ -245,35 +243,117 @@ jobs:
|
|||||||
kill %1
|
kill %1
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
- name: Create Test Summary
|
- name: Upload detailed test logs
|
||||||
if: always()
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
exec 2>&1
|
|
||||||
set -x
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
# qemu_update report includes all reqults of qemu_uefi as test results are
|
|
||||||
# stored in a temporary sqlite DB in scripts/ which is not deleted between test runs.
|
|
||||||
cp scripts/results-qemu_update.md ./test-results.md
|
|
||||||
cat test-results.md >> "$GITHUB_STEP_SUMMARY"
|
|
||||||
|
|
||||||
- name: If started from a PR, post test summary to PR
|
|
||||||
if: ${{ github.event_name == 'pull_request' }}
|
|
||||||
uses: mshick/add-pr-comment@v2
|
|
||||||
with:
|
|
||||||
if: always()
|
|
||||||
message-path: "test-results.md"
|
|
||||||
|
|
||||||
- name: Upload artifacts
|
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.arch }}-test-results
|
name: ${{ matrix.arch }}-test-logs-and-results
|
||||||
path: |
|
path: |
|
||||||
scripts/__TESTS__/*/_kola_temp/
|
scripts/__TESTS__/*/_kola_temp/
|
||||||
scripts/__TESTS__/*/*.tap
|
scripts/__TESTS__/*/*.tap
|
||||||
scripts/__TESTS__/*/*.txt
|
scripts/__TESTS__/*/*.txt
|
||||||
scripts/results-*.tap
|
scripts/results-*.tap
|
||||||
scripts/results-*.md
|
scripts/results-*.md
|
||||||
test-results.md
|
|
||||||
|
- name: Upload raw TAP files of all runs for later merging
|
||||||
|
if: always()
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.arch }}-raw-tapfiles
|
||||||
|
path: |
|
||||||
|
scripts/__TESTS__/*/*.tap
|
||||||
|
|
||||||
|
|
||||||
|
merge_and_publish_results:
|
||||||
|
name: "Merge TAP reports and post results"
|
||||||
|
needs: tests
|
||||||
|
if: always()
|
||||||
|
runs-on:
|
||||||
|
- self-hosted
|
||||||
|
- debian
|
||||||
|
- kola
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Prepare machine
|
||||||
|
shell: bash
|
||||||
|
working-directory: ${{ github.workspace }}
|
||||||
|
run: |
|
||||||
|
sudo rm /bin/sh
|
||||||
|
sudo ln -s /bin/bash /bin/sh
|
||||||
|
sudo apt-get install -y ca-certificates curl gnupg lsb-release git bzip2 jq sqlite3
|
||||||
|
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
path: scripts
|
||||||
|
fetch-depth: 0
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
# Hack alert: actions/checkout will check out the (disjunct) merge commit of a PR
|
||||||
|
# instead of its head commit. That commit is not connected to any branch.
|
||||||
|
# This is not technically necessary for the tests run but it is done to remain aligned
|
||||||
|
# with the ref.
|
||||||
|
- name: If this is a PR build, use head commit instead of the merge commit
|
||||||
|
if: ${{ github.event.pull_request.head.sha }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
exec 2>&1
|
||||||
|
set -x
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
cd scripts
|
||||||
|
git checkout ${{ github.event.pull_request.head.sha }}
|
||||||
|
git submodule update
|
||||||
|
|
||||||
|
# This is clunky. Haven't figured out how to re-use matrix.arch here for downloads,
|
||||||
|
# so we download each arch individually.
|
||||||
|
- name: Download amd64 tapfiles
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: amd64-raw-tapfiles
|
||||||
|
path: scripts/__TAP__/amd64
|
||||||
|
|
||||||
|
- name: Download arm64 tapfiles
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: arm64-raw-tapfiles
|
||||||
|
path: scripts/__TAP__/arm64
|
||||||
|
|
||||||
|
- name: Create Test Summary
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
exec 2>&1
|
||||||
|
set -x
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
cd scripts
|
||||||
|
|
||||||
|
ls -laR __TAP__
|
||||||
|
|
||||||
|
source ci-automation/tapfile_helper_lib.sh
|
||||||
|
|
||||||
|
all_archs=""
|
||||||
|
for arch in __TAP__/*; do
|
||||||
|
arch_name="$(basename "${arch}")"
|
||||||
|
all_archs="${all_archs} ${arch_name}"
|
||||||
|
for vendor in "${arch}"/*; do
|
||||||
|
vendor_name="$(basename "${vendor}")"
|
||||||
|
run=1
|
||||||
|
for tap in "${vendor}"/*.tap; do
|
||||||
|
tap_ingest_tapfile "${tap}" "${vendor_name}-${arch_name}" "${run}"
|
||||||
|
((run++))
|
||||||
|
done
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
source sdk_container/.repo/manifests/version.txt
|
||||||
|
tap_generate_report "${all_archs}" "${FLATCAR_VERSION}" "md" "true" > test-results.md
|
||||||
|
|
||||||
|
cat test-results.md >> "$GITHUB_STEP_SUMMARY"
|
||||||
|
|
||||||
|
- name: If started from a PR, post test summary to PR
|
||||||
|
if: ${{ github.event_name == 'pull_request' }}
|
||||||
|
uses: mshick/add-pr-comment@v2
|
||||||
|
with:
|
||||||
|
message-path: "test-results.md"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user