42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
# Copyright © 2020 - 2022 Collabora Ltd.
|
|
# Authors:
|
|
# Tomeu Vizoso <tomeu.vizoso@collabora.com>
|
|
# David Heidelberg <david.heidelberg@collabora.com>
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
'''Shared functions between the scripts.'''
|
|
|
|
import os
|
|
import time
|
|
from typing import Optional
|
|
|
|
|
|
def get_gitlab_project(glab, name: str):
|
|
"""Finds a specified gitlab project for given user"""
|
|
glab.auth()
|
|
username = glab.user.username
|
|
return glab.projects.get(f"{username}/mesa")
|
|
|
|
|
|
def read_token(token_arg: Optional[str]) -> str:
|
|
"""pick token from args or file"""
|
|
if token_arg:
|
|
return token_arg
|
|
return (
|
|
open(os.path.expanduser("~/.config/gitlab-token"), encoding="utf-8")
|
|
.readline()
|
|
.rstrip()
|
|
)
|
|
|
|
|
|
def wait_for_pipeline(project, sha: str):
|
|
"""await until pipeline appears in Gitlab"""
|
|
print("⏲ for the pipeline to appear..", end="")
|
|
while True:
|
|
pipelines = project.pipelines.list(sha=sha)
|
|
if pipelines:
|
|
print("", flush=True)
|
|
return pipelines[0]
|
|
print("", end=".", flush=True)
|
|
time.sleep(1)
|