2020-06-03 13:40:22 +02:00
|
|
|
import logging
|
|
|
|
import os
|
|
|
|
import re
|
|
|
|
import subprocess
|
|
|
|
from typing import Optional
|
|
|
|
|
2020-07-23 09:50:06 +02:00
|
|
|
|
2020-06-03 13:40:22 +02:00
|
|
|
def upload_file(base_dir: str, file: str):
|
|
|
|
"""
|
|
|
|
Uploads artifact to buildkite and returns URL to it
|
|
|
|
"""
|
|
|
|
r = subprocess.run(f'buildkite-agent artifact upload "{file}"', shell=True, capture_output=True, cwd=base_dir)
|
|
|
|
logging.debug(f'upload-artifact {r}')
|
|
|
|
match = re.search('Uploading artifact ([^ ]*) ', r.stderr.decode())
|
|
|
|
logging.debug(f'match {match}')
|
|
|
|
if match:
|
|
|
|
url = f'https://buildkite.com/organizations/llvm-project/pipelines/premerge-checks/builds/{os.getenv("BUILDKITE_BUILD_NUMBER")}/jobs/{os.getenv("BUILDKITE_JOB_ID")}/artifacts/{match.group(1)}'
|
|
|
|
logging.info(f'uploaded {file} to {url}')
|
|
|
|
return url
|
|
|
|
else:
|
|
|
|
logging.warning(f'could not find artifact {base_dir}/{file}')
|
|
|
|
return None
|
|
|
|
|
|
|
|
|
|
|
|
def format_url(url: str, name: Optional[str] = None):
|
|
|
|
if name is None:
|
|
|
|
name = url
|
|
|
|
return f"\033]1339;url='{url}';content='{name}'\a\n"
|
|
|
|
|