@@ -288,28 +288,34 @@ def _push_artifact_blobs(self, artifact, artifact_digest, remote):
288288 artifact_proto = artifact ._get_proto ()
289289
290290 try :
291- if str ( artifact_proto .files ):
291+ if artifact_proto .HasField ( " files" ):
292292 self .cas ._send_directory (remote , artifact_proto .files )
293293
294- if str ( artifact_proto .buildtree ):
294+ if artifact_proto .HasField ( " buildtree" ):
295295 try :
296296 self .cas ._send_directory (remote , artifact_proto .buildtree )
297297 except FileNotFoundError :
298298 pass
299299
300- if str (artifact_proto .buildroot ):
300+ if artifact_proto .HasField ("sources" ):
301+ try :
302+ self .cas ._send_directory (remote , artifact_proto .sources )
303+ except FileNotFoundError :
304+ pass
305+
306+ if artifact_proto .HasField ("buildroot" ):
301307 try :
302308 self .cas ._send_directory (remote , artifact_proto .buildroot )
303309 except FileNotFoundError :
304310 pass
305311
306- if artifact_proto .buildsandbox :
312+ if artifact_proto .HasField ( " buildsandbox" ) :
307313 for subsandbox_digest in artifact_proto .buildsandbox .subsandbox_digests :
308314 self .cas ._send_directory (remote , subsandbox_digest )
309315
310316 digests = [artifact_digest , artifact_proto .low_diversity_meta , artifact_proto .high_diversity_meta ]
311317
312- if str ( artifact_proto .public_data ):
318+ if artifact_proto .HasField ( " public_data" ):
313319 digests .append (artifact_proto .public_data )
314320
315321 for log_file in artifact_proto .logs :
@@ -357,22 +363,25 @@ def _push_artifact_proto(self, element, artifact, artifact_digest, remote):
357363 raise ArtifactError ("{}" .format (e ), temporary = True ) from e
358364
359365 referenced_directories = []
360- if artifact_proto .files :
366+ if artifact_proto .HasField ( " files" ) :
361367 referenced_directories .append (artifact_proto .files )
362- if artifact_proto .buildtree :
368+ if artifact_proto .HasField ( " buildtree" ) :
363369 referenced_directories .append (artifact_proto .buildtree )
364- if artifact_proto .sources :
370+ if artifact_proto .HasField ( " sources" ) :
365371 referenced_directories .append (artifact_proto .sources )
366- if artifact_proto .buildroot :
372+ if artifact_proto .HasField ( " buildroot" ) :
367373 referenced_directories .append (artifact_proto .buildroot )
368- if artifact_proto .buildsandbox :
374+ if artifact_proto .HasField ( " buildsandbox" ) :
369375 for subsandbox_digest in artifact_proto .buildsandbox .subsandbox_digests :
370376 referenced_directories .append (subsandbox_digest )
371377
372378 referenced_blobs = [artifact_proto .low_diversity_meta , artifact_proto .high_diversity_meta ] + [
373379 log_file .digest for log_file in artifact_proto .logs
374380 ]
375381
382+ if artifact_proto .HasField ("public_data" ):
383+ referenced_blobs .append (artifact_proto .public_data )
384+
376385 try :
377386 remote .push_blob (
378387 uris ,
@@ -418,20 +427,22 @@ def _pull_artifact_storage(self, element, key, artifact_digest, remote, pull_bui
418427 with utils .save_file_atomic (artifact_path , mode = "wb" ) as f :
419428 f .write (artifact .SerializeToString ())
420429
421- if str ( artifact .files ):
430+ if artifact .HasField ( " files" ):
422431 self .cas .fetch_directory (remote , artifact .files )
423432
424433 if pull_buildtrees :
425- if str ( artifact .buildtree ):
434+ if artifact .HasField ( " buildtree" ):
426435 self .cas .fetch_directory (remote , artifact .buildtree )
427- if str (artifact .buildroot ):
436+ if artifact .HasField ("sources" ):
437+ self .cas .fetch_directory (remote , artifact .sources )
438+ if artifact .HasField ("buildroot" ):
428439 self .cas .fetch_directory (remote , artifact .buildroot )
429- if artifact .buildsandbox :
440+ if artifact .HasField ( " buildsandbox" ) :
430441 for subsandbox_digest in artifact .buildsandbox .subsandbox_digests :
431442 self .cas .fetch_directory (remote , subsandbox_digest )
432443
433444 digests = [artifact .low_diversity_meta , artifact .high_diversity_meta ]
434- if str ( artifact .public_data ):
445+ if artifact .HasField ( " public_data" ):
435446 digests .append (artifact .public_data )
436447
437448 for log_digest in artifact .logs :
0 commit comments