Skip to content

Commit

Permalink
[CI]: Add teamcity tests badge for nb-nbs-stable-lab (#841)
Browse files Browse the repository at this point in the history
  • Loading branch information
jkuradobery authored Mar 28, 2024
1 parent 967cb4f commit 005ea26
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 2 deletions.
30 changes: 28 additions & 2 deletions cloud/storage/core/tools/ci/runner/generate_index.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#!/usr/bin/env python3
from pathlib import Path

from lxml import etree

import os
import sys
import time


__ROOT = "/var/www/build"
Expand All @@ -27,6 +27,32 @@ def generate_github_tests_section(index, tests_xml_index_path):
tests.append(t)


def generate_teamcity_nbs_internal_tests(index: etree.Element, teamcity_domain_file_path: Path):
test_cases = {
"acceptance": {
"small": "disk_manager_acceptance_small",
"medium": "NBS_Tests_DiskManager_Acceptance_NbNbsStableLab_Acc",
"enormous": "NBS_Tests_DiskManager_Acceptance_NbNbsStableLab_Enormous",
},
"eternal": {
"8gib": "eternal_8gib",
"256gib": "NBS_Tests_DiskManager_Eternal_NbNbsStableLab_Eternal256gib",
"8tib": "NBS_Tests_DiskManager_Eternal_NbNbsStableLab_Eternal8tib",
},
"sync": {
"2gib": "NBS_Tests_DiskManager_Sync_Sync2gib",
}
}
tree = etree.SubElement(index, 'nb-nbs-stable-lab-teamcity-tests')
tree.set("teamcity-domain", teamcity_domain_file_path.read_text())
for test_kind, value in test_cases.items():
sub_element = etree.SubElement(tree, test_kind)
for test_case_name, build_configuration_name in value.items():
test_case_element = etree.SubElement(sub_element, "teamcity_testcase")
test_case_element.set("test-case-name", test_case_name)
test_case_element.set("build-configuration-name", build_configuration_name)


def generate_generic_tests_section(index, section_name, results_xml_path):
tree = etree.ElementTree()
full_path = os.path.join(results_xml_path, section_name + ".xml")
Expand Down Expand Up @@ -114,7 +140,7 @@ def generate_degradation_section(index, results_xml_path):
generate_nfs_section(index, results_xml_path)
generate_dm_section(index, results_xml_path)
generate_degradation_section(index, results_xml_path)

generate_teamcity_nbs_internal_tests(index, Path(__ROOT) / 'teamcity.url')
tree = etree.ElementTree(index)
tree.write(xml_index_path, encoding="utf-8", pretty_print=True)

Expand Down
43 changes: 43 additions & 0 deletions cloud/storage/core/tools/ci/runner/index.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,46 @@
</div>
</xsl:template>

<!-- templates for nb-nbs-stable-lab teamcity badges -->
<xsl:template match="teamcity_testcase">
<xsl:param name="teamcity-domain"/>
<xsl:variable name="badge-url" select="concat(
'https://',
$teamcity-domain,
'/guestAuth/app/rest/builds/buildType:(id:',
@build-configuration-name,
')/statusIcon')"/>
<xsl:variable name="run-url" select="concat(
'https://',
$teamcity-domain,
'/buildConfiguration/',
@build-configuration-name)"/>
<xsl:value-of select="@test-case-name"/>
<a>
<xsl:attribute name="href">
<xsl:value-of select="$run-url"/>
</xsl:attribute>
<img>
<xsl:attribute name="src">
<xsl:value-of select="$badge-url"/>
</xsl:attribute>
<xsl:attribute name="alt">
<xsl:value-of select="@test-case-name"/>
</xsl:attribute>
</img>
</a>
</xsl:template>

<xsl:template match="nb-nbs-stable-lab-teamcity-tests/child::*">
<xsl:param name="teamcity-domain"/>
<div style="border-top: 1px dashed black; margin-bottom: 10px; padding-top: 10px">
<b>nb-nbs-stable-lab/<xsl:value-of select="name(.)"/>:</b>
<xsl:apply-templates select="./child::teamcity_testcase">
<xsl:with-param name="teamcity-domain" select="$teamcity-domain"/>
</xsl:apply-templates>
</div>
</xsl:template>

<!-- boilerplate wrappers for detailed suite reports -->

<xsl:template match="fio" mode="detailed">
Expand Down Expand Up @@ -283,6 +323,9 @@
</div>
<div style="border: 1px solid black; margin-bottom: 20px; padding: 10px">
<h3>DM</h3>
<xsl:apply-templates select="nb-nbs-stable-lab-teamcity-tests/child::*">
<xsl:with-param name="teamcity-domain" select="nb-nbs-stable-lab-teamcity-tests/@teamcity-domain"/>
</xsl:apply-templates>
<xsl:apply-templates select="disk_manager_acceptance" mode="brief"/>
<xsl:apply-templates select="disk_manager_eternal" mode="brief"/>
<xsl:apply-templates select="disk_manager_sync" mode="brief"/>
Expand Down

0 comments on commit 005ea26

Please sign in to comment.