transformers

Форк
0
/
check_self_hosted_runner.py 
52 строки · 1.5 Кб
1
import argparse
2
import json
3
import subprocess
4

5

6
def get_runner_status(target_runners, token):
7
    offline_runners = []
8

9
    cmd = (
10
        f'curl -H "Accept: application/vnd.github+json" -H "Authorization: Bearer {token}"'
11
        " https://api.github.com/repos/huggingface/transformers/actions/runners"
12
    )
13
    output = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE)
14
    o = output.stdout.decode("utf-8")
15
    status = json.loads(o)
16

17
    runners = status["runners"]
18
    for runner in runners:
19
        if runner["name"] in target_runners:
20
            if runner["status"] == "offline":
21
                offline_runners.append(runner)
22

23
    # save the result so we can report them on Slack
24
    with open("offline_runners.txt", "w") as fp:
25
        fp.write(json.dumps(offline_runners))
26

27
    if len(offline_runners) > 0:
28
        failed = "\n".join([x["name"] for x in offline_runners])
29
        raise ValueError(f"The following runners are offline:\n{failed}")
30

31

32
if __name__ == "__main__":
33

34
    def list_str(values):
35
        return values.split(",")
36

37
    parser = argparse.ArgumentParser()
38
    # Required parameters
39
    parser.add_argument(
40
        "--target_runners",
41
        default=None,
42
        type=list_str,
43
        required=True,
44
        help="Comma-separated list of runners to check status.",
45
    )
46

47
    parser.add_argument(
48
        "--token", default=None, type=str, required=True, help="A token that has actions:read permission."
49
    )
50
    args = parser.parse_args()
51

52
    get_runner_status(args.target_runners, args.token)
53

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.