mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-23 06:31:18 +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
|
||||
matrix:
|
||||
arch: ["amd64", "arm64"]
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Prepare machine
|
||||
@ -245,35 +243,117 @@ jobs:
|
||||
kill %1
|
||||
set -e
|
||||
|
||||
- name: Create Test Summary
|
||||
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
|
||||
- name: Upload detailed test logs
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ matrix.arch }}-test-results
|
||||
name: ${{ matrix.arch }}-test-logs-and-results
|
||||
path: |
|
||||
scripts/__TESTS__/*/_kola_temp/
|
||||
scripts/__TESTS__/*/*.tap
|
||||
scripts/__TESTS__/*/*.txt
|
||||
scripts/results-*.tap
|
||||
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