Skip to content

Commit

Permalink
add a Simplified example for streamed artifacts
Browse files Browse the repository at this point in the history
Going through an object adds a lot of complication.
Adding example for unzipping on the fly
  • Loading branch information
tardyp committed Feb 5, 2018
1 parent 1ca3080 commit faeb1c1
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 4 deletions.
12 changes: 10 additions & 2 deletions docs/gl_objects/builds.py
Expand Up @@ -72,7 +72,7 @@
build_or_job.artifacts()
# end artifacts

# stream artifacts
# stream artifacts with class
class Foo(object):
def __init__(self):
self._fd = open('artifacts.zip', 'wb')
Expand All @@ -83,7 +83,15 @@ def __call__(self, chunk):
target = Foo()
build_or_job.artifacts(streamed=True, action=target)
del(target) # flushes data on disk
# end stream artifacts
# end stream artifacts with class

# stream artifacts with unzip
zipfn = "___artifacts.zip"
with open(zipfn, "wb") as f:
build_or_job.artifacts(streamed=True, action=f.write)
subprocess.run(["unzip", "-bo", zipfn])
os.unlink(zipfn)
# end stream artifacts with unzip

# keep artifacts
build_or_job.keep_artifacts()
Expand Down
10 changes: 8 additions & 2 deletions docs/gl_objects/builds.rst
Expand Up @@ -201,8 +201,14 @@ You can download artifacts as a stream. Provide a callable to handle the
stream:

.. literalinclude:: builds.py
:start-after: # stream artifacts
:end-before: # end stream artifacts
:start-after: # stream artifacts with class
:end-before: # end stream artifacts with class

In this second example, you can directly stream the output into a file, and unzip it afterwards:

.. literalinclude:: builds.py
:start-after: # stream artifacts with unzip
:end-before: # end stream artifacts with unzip

Mark a job artifact as kept when expiration is set:

Expand Down

0 comments on commit faeb1c1

Please sign in to comment.