From 9ab9ec7fc502fb468d54452c06aa75784e4e8999 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 4 Dec 2022 17:19:44 +0100 Subject: [PATCH] extract and store busybox results --- .github/workflows/CICD.yml | 56 ++++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index ad8b107a8..66f56c7f4 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -758,6 +758,12 @@ jobs: job: - { os: ubuntu-latest } steps: + - name: Initialize workflow variables + id: vars + shell: bash + run: | + ## VARs setup + echo "TEST_SUMMARY_FILE=busybox-result.json" >> $GITHUB_OUTPUT - uses: actions/checkout@v3 - name: Install/setup prerequisites shell: bash @@ -768,19 +774,59 @@ jobs: run: | rustup toolchain install stable --profile minimal rustup default stable - - uses: Swatinem/rust-cache@v2 - - name: "Run BusyBox test suite" + - name: Install dependencies shell: bash run: | + ## Install dependencies + sudo apt-get update + sudo apt-get install jq + - uses: Swatinem/rust-cache@v2 + - name: "Run BusyBox test suite" + id: summary + shell: bash + run: | + set -v cp .busybox-config target/debug/.config ## Run BusyBox test suite bindir=$(pwd)/target/debug cd tmp/busybox-*/testsuite output=$(bindir=$bindir ./runtest 2>&1 || true) printf "%s\n" "${output}" - n_fails=$(echo "$output" | grep "^FAIL:\s" | wc --lines) - echo "n_fails $n_fails" - if [ $n_fails -gt 0 ] ; then echo "::warning ::${n_fails}+ test failures" ; fi + FAIL=$(echo "$output" | grep "^FAIL:\s" | wc --lines) + PASS=$(echo "$output" | grep "^PASS:\s" | wc --lines) + SKIPPED=$(echo "$output" | grep "^SKIPPED:\s" | wc --lines) + TOTAL=`expr $FAIL + $PASS + $SKIPPED` + echo "FAIL $FAIL" + echo "SKIP $SKIPPED" + echo "PASS $PASS" + echo "TOTAL $TOTAL" + cd - + jq -n \ + --arg date "$(date --rfc-email)" \ + --arg sha "$GITHUB_SHA" \ + --arg total "$TOTAL" \ + --arg pass "$PASS" \ + --arg skip "$SKIPPED" \ + --arg fail "$FAIL" \ + '{($date): { sha: $sha, total: $total, pass: $pass, skip: $skip, fail: $fail, }}' > '${{ steps.vars.outputs.TEST_SUMMARY_FILE }}' + HASH=$(sha1sum '${{ steps.vars.outputs.TEST_SUMMARY_FILE }}' | cut --delim=" " -f 1) + echo "HASH=${HASH}" >> $GITHUB_OUTPUT + if [ $FAIL -gt 0 ] ; then echo "::warning ::${FAIL}+ test failures" ; fi + - name: Reserve SHA1/ID of 'test-summary' + uses: actions/upload-artifact@v3 + with: + name: "${{ steps.summary.outputs.HASH }}" + path: "${{ steps.vars.outputs.TEST_SUMMARY_FILE }}" + - name: Reserve test results summary + uses: actions/upload-artifact@v3 + with: + name: test-summary + path: "${{ steps.vars.outputs.TEST_SUMMARY_FILE }}" + - name: Upload json results + uses: actions/upload-artifact@v3 + with: + name: busybox-result.json + path: ${{ steps.vars.outputs.TEST_SUMMARY_FILE }} test_android: name: Test Android builds