status.py 1002 Bytes
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"]
11
response = requests.get("{}wfapi".format(job_link), verify=False).json()
12
print(response)
Rhett Ying's avatar
Rhett Ying committed
13
status = "✅ CI test succeeded"
14
for v in response["stages"]:
15
    # https://javadoc.jenkins.io/plugin/pipeline-graph-analysis/org/jenkinsci/plugins/workflow/pipelinegraphanalysis/GenericStatus.html
16
    if v["status"] in ["FAILED", "ABORTED"]:
17
        status = "❌ CI test failed in Stage [{}].".format(v["name"])
Rhett Ying's avatar
Rhett Ying committed
18
        break
19

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

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