Merge pull request #5471 from vector-im/michaelk/ci_script_improvements

CI Script improvements
This commit is contained in:
Michael Kaye 2022-03-21 15:06:11 +00:00 committed by GitHub
commit 4a8aeadbcf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 27 deletions

View file

@ -265,6 +265,7 @@ jobs:
failure_screenshots/
codecov-units:
name: Unit tests with code coverage
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
@ -290,6 +291,7 @@ jobs:
build/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml
sonarqube:
name: Sonarqube upload
runs-on: macos-latest
if: always()
needs:
@ -319,6 +321,7 @@ jobs:
# Notify the channel about scheduled runs, do not notify for manually triggered runs
notify:
name: Notify matrix
runs-on: ubuntu-latest
needs:
- integration-tests
@ -333,4 +336,4 @@ jobs:
matrix_access_token: ${{ secrets.ELEMENT_ANDROID_NOTIFICATION_ACCESS_TOKEN }}
matrix_room_id: ${{ secrets.ELEMENT_ANDROID_INTERNAL_ROOM_ID }}
text_template: "Nightly test run: {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
html_template: "Nightly test run results: {{#each job_statuses }}{{#with this }}{{#if completed }}<br />{{name}} {{conclusion}} at {{completed_at}} <a href=\"{{html_url}}\">[details]</a>{{/if}}{{/with}}{{/each}}"
html_template: "Nightly test run results: {{#each job_statuses }}{{#with this }}{{#if completed }}<br />{{icon conclusion}} {{name}} <font color='{{color conclusion}}'>{{conclusion}} at {{completed_at}} <a href=\"{{html_url}}\">[details]</a></font>{{/if}}{{/with}}{{/each}}"

View file

@ -13,32 +13,35 @@ print("::group::Arguments")
print(f"{sys.argv}")
print("::endgroup::")
for xmlfile in xmlfiles:
tree = ET.parse(xmlfile)
try:
tree = ET.parse(xmlfile)
root = tree.getroot()
name = root.attrib['name']
time = root.attrib['time']
tests = int(root.attrib['tests'])
skipped = int(root.attrib['skipped'])
errors = int(root.attrib['errors'])
failures = int(root.attrib['failures'])
success = tests - failures - errors - skipped
total = tests - skipped
print(f"::group::{name} {success}/{total} ({skipped} skipped) in {time}")
root = tree.getroot()
name = root.attrib['name']
time = root.attrib['time']
tests = int(root.attrib['tests'])
skipped = int(root.attrib['skipped'])
errors = int(root.attrib['errors'])
failures = int(root.attrib['failures'])
success = tests - failures - errors - skipped
total = tests - skipped
print(f"::group::{name} {success}/{total} ({skipped} skipped) in {time}")
for testcase in root:
if testcase.tag != "testcase":
continue
testname = testcase.attrib['classname']
message = testcase.attrib['name']
time = testcase.attrib['time']
child = testcase.find("failure")
if child is None:
print(f"{message} in {time}s")
else:
print(f"::error file={testname}::{message} in {time}s")
print(child.text)
body = f"passed={success} failures={failures} errors={errors} skipped={skipped}"
print(f"::set-output name={suitename}::={body}")
for testcase in root:
if testcase.tag != "testcase":
continue
testname = testcase.attrib['classname']
message = testcase.attrib['name']
time = testcase.attrib['time']
child = testcase.find("failure")
if child is None:
print(f"{message} in {time}s")
else:
print(f"::error file={testname}::{message} in {time}s")
print(child.text)
body = f" passed={success} failures={failures} errors={errors} skipped={skipped}"
print(f"::set-output name={suitename}::={body}")
except FileNotFoundError:
print(f"::error::Unable to open test results file {xmlfile} - check if the tests completed")
print("::endgroup::")