#!/usr/bin/env python3 # vim: set syntax=python ts=4 : # Copyright (c) 2020 Intel Corporation # SPDX-License-Identifier: Apache-2.0 import tarfile import json import os class Artifacts: def __init__(self, env): self.options = env.options def make_tarfile(self, output_filename, source_dirs): root = os.path.basename(self.options.outdir) with tarfile.open(output_filename, "w:bz2") as tar: tar.add(self.options.outdir, recursive=False) for d in source_dirs: f = os.path.relpath(d, self.options.outdir) tar.add(d, arcname=os.path.join(root, f)) def package(self): dirs = [] with open(os.path.join(self.options.outdir, "twister.json"), "r") as json_test_plan: jtp = json.load(json_test_plan) for t in jtp['testsuites']: if t['status'] != "filtered": p = t['platform'] normalized = p.replace("/", "_") dirs.append(os.path.join(self.options.outdir, normalized, t['name'])) dirs.extend( [ os.path.join(self.options.outdir, "twister.json"), os.path.join(self.options.outdir, "testplan.json") ] ) self.make_tarfile(self.options.package_artifacts, dirs)