jolt 0.9.373__py3-none-any.whl → 0.9.388__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of jolt might be problematic. Click here for more details.
- jolt/cache.py +1 -1
- jolt/cli.py +32 -3
- jolt/loader.py +9 -6
- jolt/plugins/docker.py +2 -2
- jolt/plugins/podman.py +1 -36
- jolt/version.py +1 -1
- {jolt-0.9.373.dist-info → jolt-0.9.388.dist-info}/METADATA +12 -2
- {jolt-0.9.373.dist-info → jolt-0.9.388.dist-info}/RECORD +11 -11
- {jolt-0.9.373.dist-info → jolt-0.9.388.dist-info}/WHEEL +1 -1
- {jolt-0.9.373.dist-info → jolt-0.9.388.dist-info}/entry_points.txt +0 -0
- {jolt-0.9.373.dist-info → jolt-0.9.388.dist-info}/top_level.txt +0 -0
jolt/cache.py
CHANGED
|
@@ -1275,7 +1275,7 @@ class ArtifactCache(StorageProvider):
|
|
|
1275
1275
|
|
|
1276
1276
|
# Read configuration
|
|
1277
1277
|
self._max_size = config.getsize(
|
|
1278
|
-
"jolt", "cachesize", os.environ.get("
|
|
1278
|
+
"jolt", "cachesize", os.environ.get("JOLT_CACHE_SIZE", 1 * 1024 ** 3))
|
|
1279
1279
|
|
|
1280
1280
|
# Create cache directory
|
|
1281
1281
|
self._fs_create_cachedir()
|
jolt/cli.py
CHANGED
|
@@ -18,7 +18,7 @@ from jolt import log
|
|
|
18
18
|
from jolt import __version__
|
|
19
19
|
from jolt.log import logfile
|
|
20
20
|
from jolt import config
|
|
21
|
-
from jolt.loader import JoltLoader
|
|
21
|
+
from jolt.loader import JoltLoader, import_workspace
|
|
22
22
|
from jolt import tools
|
|
23
23
|
from jolt import utils
|
|
24
24
|
from jolt.influence import HashInfluenceRegistry
|
|
@@ -216,12 +216,13 @@ def _autocomplete_tasks(ctx, args, incomplete):
|
|
|
216
216
|
help="Don't prune cached artifacts from the build graph. This option can be used to populate the local cache with remotely cached dependency artifacts.")
|
|
217
217
|
@click.option("--worker", is_flag=True, default=False,
|
|
218
218
|
help="Run with the worker build strategy", hidden=True)
|
|
219
|
+
@click.option("--environ", type=click.Path(), help="Import build environment from protobuf", hidden=True)
|
|
219
220
|
@click.pass_context
|
|
220
221
|
@hooks.cli_build
|
|
221
222
|
def build(ctx, task, network, keep_going, default, local,
|
|
222
223
|
no_download, no_download_persistent, no_upload, download, upload, worker, force,
|
|
223
224
|
salt, copy, debug, result, jobs, no_prune, verbose,
|
|
224
|
-
mute):
|
|
225
|
+
mute, environ):
|
|
225
226
|
"""
|
|
226
227
|
Build task artifact.
|
|
227
228
|
|
|
@@ -253,6 +254,7 @@ def build(ctx, task, network, keep_going, default, local,
|
|
|
253
254
|
are removed before execution starts.
|
|
254
255
|
|
|
255
256
|
"""
|
|
257
|
+
|
|
256
258
|
raise_error_if(network and local,
|
|
257
259
|
"The -n and -l flags are mutually exclusive")
|
|
258
260
|
|
|
@@ -304,6 +306,33 @@ def build(ctx, task, network, keep_going, default, local,
|
|
|
304
306
|
if keep_going:
|
|
305
307
|
config.set_keep_going(True)
|
|
306
308
|
|
|
309
|
+
# Import build environment from protobuf if provided
|
|
310
|
+
buildenv = None
|
|
311
|
+
if environ:
|
|
312
|
+
with open(environ, "rb") as f:
|
|
313
|
+
from jolt import common_pb2 as common_pb
|
|
314
|
+
buildenv = common_pb.BuildEnvironment()
|
|
315
|
+
try:
|
|
316
|
+
buildenv.ParseFromString(f.read())
|
|
317
|
+
except Exception as e:
|
|
318
|
+
raise_error("Failed to parse build environment protobuf: {}", e)
|
|
319
|
+
|
|
320
|
+
# Import log level
|
|
321
|
+
log.set_level_pb(buildenv.loglevel)
|
|
322
|
+
|
|
323
|
+
# Import workspace
|
|
324
|
+
import_workspace(buildenv)
|
|
325
|
+
|
|
326
|
+
# Import configuration snippet
|
|
327
|
+
config.import_config(buildenv.config)
|
|
328
|
+
|
|
329
|
+
# Import configuration parameters (-c params.key)
|
|
330
|
+
config.import_params({param.key: param.value for param in buildenv.parameters})
|
|
331
|
+
|
|
332
|
+
# Import default parameters (-d taskname:param=value)
|
|
333
|
+
default = utils.as_list(default)
|
|
334
|
+
default += buildenv.task_default_parameters
|
|
335
|
+
|
|
307
336
|
options = JoltOptions(
|
|
308
337
|
network=network,
|
|
309
338
|
local=local,
|
|
@@ -340,7 +369,7 @@ def build(ctx, task, network, keep_going, default, local,
|
|
|
340
369
|
|
|
341
370
|
log.info("Started: {}", datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
|
|
342
371
|
|
|
343
|
-
gb = graph.GraphBuilder(registry, acache, options, progress=True)
|
|
372
|
+
gb = graph.GraphBuilder(registry, acache, options, progress=True, buildenv=buildenv)
|
|
344
373
|
dag = gb.build(task)
|
|
345
374
|
|
|
346
375
|
# If asked to force rebuild, taint all goal tasks
|
jolt/loader.py
CHANGED
|
@@ -252,6 +252,7 @@ class JoltLoader(object):
|
|
|
252
252
|
for factory in _loaders:
|
|
253
253
|
loader = factory().create(searchpath)
|
|
254
254
|
for recipe in loader.recipes:
|
|
255
|
+
recipe.workspace_path = os.path.relpath(recipe.path, self.workspace_path)
|
|
255
256
|
recipe.load()
|
|
256
257
|
self._recipes.append(recipe)
|
|
257
258
|
self._tasks += recipe.tasks
|
|
@@ -450,6 +451,7 @@ def export_workspace(tasks=None) -> common_pb.Workspace:
|
|
|
450
451
|
cache_grpc_uri = config.geturi("cache", "grpc_uri")
|
|
451
452
|
if fstree_enabled:
|
|
452
453
|
if not cache_grpc_uri:
|
|
454
|
+
fstree_enabled = False
|
|
453
455
|
log.warning("No cache gRPC URI configured, will not push workspace to remote cache")
|
|
454
456
|
else:
|
|
455
457
|
raise_error_if(cache_grpc_uri.scheme not in ["tcp"], "Invalid scheme in cache gRPC URI config: {}", cache_grpc_uri.scheme)
|
|
@@ -542,12 +544,13 @@ def export_workspace(tasks=None) -> common_pb.Workspace:
|
|
|
542
544
|
tree=tree,
|
|
543
545
|
)
|
|
544
546
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
547
|
+
if not fstree_enabled:
|
|
548
|
+
for recipe in loader.recipes:
|
|
549
|
+
workspace.files.append(
|
|
550
|
+
common_pb.File(
|
|
551
|
+
path=recipe.workspace_path,
|
|
552
|
+
content=recipe.source,
|
|
553
|
+
)
|
|
550
554
|
)
|
|
551
|
-
)
|
|
552
555
|
|
|
553
556
|
return workspace
|
jolt/plugins/docker.py
CHANGED
|
@@ -103,8 +103,8 @@ class DockerClient(Download):
|
|
|
103
103
|
url = "https://download.docker.com/{host}/static/stable/{arch}/docker-{version}.tgz"
|
|
104
104
|
""" URL of binaries """
|
|
105
105
|
|
|
106
|
-
version = Parameter("27.
|
|
107
|
-
""" Docker version [27.
|
|
106
|
+
version = Parameter("27.4.1", help="Docker version")
|
|
107
|
+
""" Docker version [27.4.1] """
|
|
108
108
|
|
|
109
109
|
def publish(self, artifact, tools):
|
|
110
110
|
super().publish(artifact, tools)
|
jolt/plugins/podman.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from jolt import
|
|
1
|
+
from jolt import Parameter, Resource, Task
|
|
2
2
|
from jolt.error import raise_task_error_if
|
|
3
3
|
from jolt.tasks import TaskRegistry
|
|
4
4
|
from jolt import attributes
|
|
@@ -15,7 +15,6 @@ from jolt.cache import ArtifactAttributeSetProvider
|
|
|
15
15
|
import contextlib
|
|
16
16
|
import json
|
|
17
17
|
from os import path
|
|
18
|
-
from platform import system
|
|
19
18
|
import tarfile
|
|
20
19
|
|
|
21
20
|
|
|
@@ -100,35 +99,6 @@ class PodmanAttributeProvider(ArtifactAttributeSetProvider):
|
|
|
100
99
|
artifact.podman.unapply(task, artifact)
|
|
101
100
|
|
|
102
101
|
|
|
103
|
-
class PodmanClient(Download):
|
|
104
|
-
""" Task: Downloads and publishes the Podman command line client.
|
|
105
|
-
|
|
106
|
-
The task will be automatically made available after importing
|
|
107
|
-
``jolt.plugins.podman``.
|
|
108
|
-
"""
|
|
109
|
-
|
|
110
|
-
name = "podman/cli"
|
|
111
|
-
""" Name of the task """
|
|
112
|
-
|
|
113
|
-
arch = Parameter("x86_64", help="Host architecture")
|
|
114
|
-
""" Host architecture [x86_64] """
|
|
115
|
-
|
|
116
|
-
collect = ["podman/podman"]
|
|
117
|
-
|
|
118
|
-
host = Parameter(system().lower(), help="Host operating system")
|
|
119
|
-
""" Host operating system [autodetected] """
|
|
120
|
-
|
|
121
|
-
url = "https://download.podman.com/{host}/static/stable/{arch}/podman-{version}.tgz"
|
|
122
|
-
""" URL of binaries """
|
|
123
|
-
|
|
124
|
-
version = Parameter("20.10.13", help="Podman version")
|
|
125
|
-
""" Podman version [20.10.13] """
|
|
126
|
-
|
|
127
|
-
def publish(self, artifact, tools):
|
|
128
|
-
super().publish(artifact, tools)
|
|
129
|
-
artifact.environ.PATH.append("podman")
|
|
130
|
-
|
|
131
|
-
|
|
132
102
|
@attributes.requires("_image")
|
|
133
103
|
class Container(Resource):
|
|
134
104
|
"""
|
|
@@ -344,8 +314,6 @@ class PodmanLogin(Resource):
|
|
|
344
314
|
name = "podman/login"
|
|
345
315
|
""" Name of the resource """
|
|
346
316
|
|
|
347
|
-
requires = ["podman/cli"]
|
|
348
|
-
|
|
349
317
|
user = Parameter("", help="Podman Registry username")
|
|
350
318
|
"""
|
|
351
319
|
Podman Registry username.
|
|
@@ -385,7 +353,6 @@ class PodmanLogin(Resource):
|
|
|
385
353
|
tools.run("podman logout {server}")
|
|
386
354
|
|
|
387
355
|
|
|
388
|
-
TaskRegistry.get().add_task_class(PodmanClient)
|
|
389
356
|
TaskRegistry.get().add_task_class(PodmanLogin)
|
|
390
357
|
|
|
391
358
|
|
|
@@ -445,7 +412,6 @@ class ContainerImage(Task):
|
|
|
445
412
|
|
|
446
413
|
Optionally add requirements to:
|
|
447
414
|
|
|
448
|
-
- ``podman/cli`` to provision the Podman client, if none is available on the host.
|
|
449
415
|
- ``podman/login`` to automatically login to the Podman registry.
|
|
450
416
|
|
|
451
417
|
This class must be subclassed.
|
|
@@ -468,7 +434,6 @@ class ContainerImage(Task):
|
|
|
468
434
|
class Busybox(ContainerImage):
|
|
469
435
|
\"\"\" Publishes Busybox image as gzip-compressed tarball \"\"\"
|
|
470
436
|
compression = "gz"
|
|
471
|
-
requires = ["podman/cli"]
|
|
472
437
|
tags = ["busybox:{identity}"]
|
|
473
438
|
|
|
474
439
|
"""
|
jolt/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.9.
|
|
1
|
+
__version__ = "0.9.388"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: jolt
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.388
|
|
4
4
|
Summary: A task executor
|
|
5
5
|
Home-page: https://github.com/srand/jolt
|
|
6
6
|
Author: Robert Andersson
|
|
@@ -66,6 +66,16 @@ Requires-Dist: sphinx-click; extra == "doc"
|
|
|
66
66
|
Requires-Dist: sphinx-rtd-theme; extra == "doc"
|
|
67
67
|
Provides-Extra: test
|
|
68
68
|
Requires-Dist: coverage; extra == "test"
|
|
69
|
+
Dynamic: author
|
|
70
|
+
Dynamic: author-email
|
|
71
|
+
Dynamic: classifier
|
|
72
|
+
Dynamic: description
|
|
73
|
+
Dynamic: home-page
|
|
74
|
+
Dynamic: keywords
|
|
75
|
+
Dynamic: provides-extra
|
|
76
|
+
Dynamic: requires-dist
|
|
77
|
+
Dynamic: requires-python
|
|
78
|
+
Dynamic: summary
|
|
69
79
|
|
|
70
80
|
Jolt
|
|
71
81
|
============================
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
jolt/__init__.py,sha256=C1WNj-iUNT1gtK2v7zxlnyMLW9dsYcM_yzlltJEYY6Y,3267
|
|
2
2
|
jolt/__main__.py,sha256=sAASLJ5dhK8jTKwh1vWAGQ2-qgLEgrAQlR-hIC75Ze0,1670
|
|
3
|
-
jolt/cache.py,sha256=
|
|
3
|
+
jolt/cache.py,sha256=rzacqo-Foq6yD3-k2aazxAQszYX2XK96sdPzegfV-og,79402
|
|
4
4
|
jolt/chroot.py,sha256=lnejhnjO3takDBZewBOvVlN2e8GWKhXnjFlqQp_zAJ4,4666
|
|
5
|
-
jolt/cli.py,sha256=
|
|
5
|
+
jolt/cli.py,sha256=b_jbDTaGnbxEdZvxhLH7TPTYjGyaMWVTdE3r6GU2G_k,42966
|
|
6
6
|
jolt/colors.py,sha256=P6vhaILGoOn8odEwQ6-z871YQoTe3HRLgS6clavwVHs,737
|
|
7
7
|
jolt/common_pb2.py,sha256=Oe9cyZ4qNyS2aTunjiO7tAO3XVw8XkZ1M7TaTmss3bs,6335
|
|
8
8
|
jolt/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
@@ -14,7 +14,7 @@ jolt/graph.py,sha256=7OCfz_Q00tV1ewGUKjwKIhk6nbfd0KemprFTs3n3XTQ,45978
|
|
|
14
14
|
jolt/hooks.py,sha256=jcCaNwlyFrWkXrO6MiO_roDQVohefbablfXnuQ3dmmM,11029
|
|
15
15
|
jolt/influence.py,sha256=c5Vdizk9kK-8O7cSU9LAHhh8xkvchudstBn7HLIr9hg,16937
|
|
16
16
|
jolt/inspection.py,sha256=QkOCXAbjJBdw1SMsb6xH_3GHXV5BcdzaGD7HrGmOJss,3931
|
|
17
|
-
jolt/loader.py,sha256
|
|
17
|
+
jolt/loader.py,sha256=-WpYcYDhdZBAncgtn9MPUMudOn2dr-nsWj9KEDKet-8,19152
|
|
18
18
|
jolt/log.py,sha256=cqEfX__AWSA4onueTTdoL4HnovEtzT4yoRoyKQk2MH8,14592
|
|
19
19
|
jolt/manifest.py,sha256=V5fkvTE-cZt0IQbA8sBdC4WEaYrz7FEXQdSt6Uj-DWc,7256
|
|
20
20
|
jolt/options.py,sha256=BrsyKsj3sY5qogMreHGgbimQuyGjnyilCa8QXPVm1Y0,947
|
|
@@ -23,7 +23,7 @@ jolt/tasks.py,sha256=fD-huf0h0xN5x3MjClaZMRDPuhjwHeF3SBnqXXlHjtM,115888
|
|
|
23
23
|
jolt/timer.py,sha256=PE-7vmsqZpF73e_cKSsrhd36-A7fJ9_XGYI_oBWJn5w,644
|
|
24
24
|
jolt/tools.py,sha256=LpmBzeQCl--7y2wAbe1flufUfO7wDeP7v4tqzgbvdaI,80097
|
|
25
25
|
jolt/utils.py,sha256=6TphNzqr2AAQ55bGDD36YoJSi8qQM3FRkrY1iIkhtNA,18771
|
|
26
|
-
jolt/version.py,sha256=
|
|
26
|
+
jolt/version.py,sha256=VDALzYR873jrSkhL4aSgbdpIzeADa7QF8BODCJQ4kuo,24
|
|
27
27
|
jolt/version_utils.py,sha256=tNCGT6ZmSGFHW1aw2Hx1l19m-RR1UnTN6xJV1I54KRw,3900
|
|
28
28
|
jolt/xmldom.py,sha256=SbygiDUMYczzWGxXa60ZguWS6Nztg8gDAirdbtjT15I,5982
|
|
29
29
|
jolt/bin/fstree-darwin-x86_64,sha256=i4Ppbdr7CxsEhJzWpy3GMB5Gn5ikmskh41MyUwQS3-o,29549000
|
|
@@ -41,7 +41,7 @@ jolt/plugins/conan.py,sha256=5d7TdQBV1dcwTFfyW-U3jrfJDTpLbnp08Ltra1zTZyc,16259
|
|
|
41
41
|
jolt/plugins/cxx.py,sha256=UqcBIcjCphRB2ojknU4v5vRv_6i3CmIAFZS1T3dXWVc,30487
|
|
42
42
|
jolt/plugins/cxxinfo.py,sha256=yuHkgT2Lqg2v1GmrjINXBF--KeSOfMya7_HN8AA2hbw,2398
|
|
43
43
|
jolt/plugins/dashboard.py,sha256=5XxU7J33htfc7rxPXTob37rOpehtWZh6N-HVlNHAluM,642
|
|
44
|
-
jolt/plugins/docker.py,sha256=
|
|
44
|
+
jolt/plugins/docker.py,sha256=cVzX9EYsk0DSkSnkArwjhZ7iVfUTYOfLyMoO2uGvdhs,21100
|
|
45
45
|
jolt/plugins/email.py,sha256=esONwpn7xKJLh4SYGZ0GpSZ2UwzWsckfsAPCeYdZSVw,3549
|
|
46
46
|
jolt/plugins/email.xslt,sha256=3vrrfnG-KH_cfJq6RDOXHKQxKd-6s28qy4znapGaciM,8513
|
|
47
47
|
jolt/plugins/environ.py,sha256=k382rvEKWj-nlibJcCUWcYtYheU8p9df9ZY0DAAkjDE,3561
|
|
@@ -58,7 +58,7 @@ jolt/plugins/ninja-compdb.py,sha256=Otxz-nQnJx-aAPuAf8-T0AOi_34ENHGb5gypGVVGFB0,
|
|
|
58
58
|
jolt/plugins/ninja.py,sha256=7ToQS3Pl81R2qoSRvGvWlkITONjOwV2wRklrB64wURQ,102787
|
|
59
59
|
jolt/plugins/nodejs.py,sha256=HHDbvmdlqnao3qOtpCD9UY7iyTIX4gb2WxKUBtn-3cM,1879
|
|
60
60
|
jolt/plugins/paths.py,sha256=DgiPI5K5bV3lVuyNEMIjRO26iTwf6RL5-2WPQ3rSmj8,1920
|
|
61
|
-
jolt/plugins/podman.py,sha256=
|
|
61
|
+
jolt/plugins/podman.py,sha256=vxcR9-X4MtMLrejgwZCH80TAS7SujFVx5NeTXCHqoGk,21975
|
|
62
62
|
jolt/plugins/python.py,sha256=kLx1Y3ezMH9AOW36DH_cNyDlvbIdTkyvPjwLYolnCEU,3073
|
|
63
63
|
jolt/plugins/report.py,sha256=EiPuZSoxEM-fXDsHBQuRTf1xtvN_gPBodMej3E9CGx0,2695
|
|
64
64
|
jolt/plugins/scheduler.py,sha256=SJdRb0taOF4zhKkPfc9zg8UyvDn7rJYtbyMPC93XXsk,24560
|
|
@@ -85,8 +85,8 @@ jolt/templates/cxxexecutable.cmake.template,sha256=f0dg1VOFlamlF8fuHFTki5dsJ2ssS
|
|
|
85
85
|
jolt/templates/cxxlibrary.cmake.template,sha256=GMEG2G3QoY3E5fsNer52zOqgM221-abeCkV__mVbZ94,1750
|
|
86
86
|
jolt/templates/export.sh.template,sha256=PKkflGXFbq70EIsowqcnLvzbnEDnqh_WgC4E_JNT0VE,1937
|
|
87
87
|
jolt/templates/timeline.html.template,sha256=xdqvFBmhE8XRQaWgcIFBVbd__9HdRq6O-U0o276PyjU,1222
|
|
88
|
-
jolt-0.9.
|
|
89
|
-
jolt-0.9.
|
|
90
|
-
jolt-0.9.
|
|
91
|
-
jolt-0.9.
|
|
92
|
-
jolt-0.9.
|
|
88
|
+
jolt-0.9.388.dist-info/METADATA,sha256=I0CrIvzF7vxCOfmUzyfVptV0pHRVYxA9pMBrFish5DY,5763
|
|
89
|
+
jolt-0.9.388.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
90
|
+
jolt-0.9.388.dist-info/entry_points.txt,sha256=VZ-QH38Z9HJc1O57wfzr-soHn6exwc3N0TSrRum4tYg,44
|
|
91
|
+
jolt-0.9.388.dist-info/top_level.txt,sha256=HwzVmAwUrvCUUHRi3zUfcpdKTsdNrZmPCvsrsWSFyqE,5
|
|
92
|
+
jolt-0.9.388.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|