summaryrefslogtreecommitdiffstats
path: root/.github/scripts/analytics/resolve_ci_job_name.py
blob: 5eb9569031d688d4e9dcb3ce719875065e61416e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/env python3
"""Map GitHub workflow + build preset to analytics job_name / github_workflow."""

# Exact legacy workflow names (mute rules, BI queries).
POSTCOMMIT_LEGACY_NAMES = {
    "relwithdebinfo": "Postcommit_relwithdebinfo",
    "release-asan": "Postcommit_asan",
}


def _postcommit_preset_suffix(build_preset: str) -> str:
    if build_preset.startswith("release-"):
        return build_preset.removeprefix("release-")
    return build_preset


def resolve_ci_job_name(
    workflow_name: str, build_preset: str, event_name: str = ""
) -> str:
    is_postcommit = workflow_name == "PR-check" and event_name == "push"
    if is_postcommit:
        if build_preset in POSTCOMMIT_LEGACY_NAMES:
            return POSTCOMMIT_LEGACY_NAMES[build_preset]
        return f"Postcommit_{_postcommit_preset_suffix(build_preset)}"
    return workflow_name


if __name__ == "__main__":
    import sys

    if len(sys.argv) not in (3, 4):
        print(
            "usage: resolve_ci_job_name.py <workflow_name> <build_preset> [event_name]",
            file=sys.stderr,
        )
        sys.exit(2)
    event_name = sys.argv[3] if len(sys.argv) == 4 else ""
    print(resolve_ci_job_name(sys.argv[1], sys.argv[2], event_name))