status.py 1.12 KB
Newer Older
1
import os
2

3
import requests
4

5
6
7
JOB_NAME = os.getenv("JOB_NAME")
BUILD_NUMBER = os.getenv("BUILD_NUMBER")
BUILD_ID = os.getenv("BUILD_ID")
8
COMMIT = os.getenv("GIT_COMMIT")
9
10
JOB_LINK = os.environ["BUILD_URL"]
response = requests.get("{}wfapi".format(JOB_LINK), verify=False).json()
11

12
13
# List of status of entire job.
# https://javadoc.jenkins.io/hudson/model/Result.html
14
15
16
17
18
19
20
21
status_output = "✅ CI test succeeded"
for stage in response["stages"]:
    # List of status of individual stage.
    # https://javadoc.jenkins.io/plugin/pipeline-graph-analysis/org/jenkinsci/plugins/workflow/pipelinegraphanalysis/GenericStatus.html
    if stage["status"] in ["FAILED", "ABORTED"]:
        stage_name = stage["name"]
        status_output = f"❌ CI test [{status}] in Stage [{stage_name}]."
        break
22

23
24
comment = f"""
Commit ID: {COMMIT}\n
25
Build ID: {BUILD_ID}\n
26
27
28
Status: {status_output}\n
Report path: [link](https://dgl-ci-result.s3.us-west-2.amazonaws.com/{JOB_NAME}/{BUILD_NUMBER}/{BUILD_ID}/logs/report.html)\n
Full logs path: [link](https://dgl-ci-result.s3.us-west-2.amazonaws.com/{JOB_NAME}/{BUILD_NUMBER}/{BUILD_ID}/logs/cireport.log)
29
30
"""

Rhett Ying's avatar
Rhett Ying committed
31
print(comment)