Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,8 @@ A build runs on the remote build service, in a builder of your own account, from
sources the builder fetches itself: a git repository or a tarball, never a directory on
this machine. A create takes the properties the API describes; `kraftfile_from` reads
the Kraftfile out of a source, and `image_output` pushes the image with your token.
Without a `kraftfile`, the build is the `Dockerfile` in the context on the
`base-compat:latest` runtime.
`logs()` follows the progress as buildkit events, every event once, asking again and
skipping what it has seen when the stream is cut, and ends with the event that carries
the `result` or the `error`: a failed build is that last event, not an exception.
Expand Down
34 changes: 22 additions & 12 deletions src/unikraft_cloud/api/build/models_gen.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 8 additions & 5 deletions src/unikraft_cloud/resources/builds.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@
# Copyright (c) 2026, Unikraft GmbH. All rights reserved.
#
# Builds on the remote build service: a request names the sources, the
# Kraftfile and the outputs, the build runs on a builder in the caller's own
# account, and its progress can be followed from the start until it ends. The
# service is global, so no metro scope applies. Every source is a git
# repository or a tarball the builder fetches itself: a directory on this
# machine would need a buildkit session, which the service does not take yet.
# outputs and a Kraftfile, or no Kraftfile to build the context's Dockerfile
# alone; the build runs on a builder in the caller's own account, and its
# progress can be followed from the start until it ends. The service is
# global, so no metro scope applies. Every source is a git repository or a
# tarball the builder fetches itself: a directory on this machine would need
# a buildkit session, which the service does not take yet.

from __future__ import annotations

Expand Down Expand Up @@ -165,6 +166,8 @@ def __init__(self, session: Session) -> None:
async def create(self, *, timeout: TimeoutOption = UNSET, **spec: Any) -> Build:
"""Create a build from the properties the API describes; it runs whether or not followed.

Without a ``kraftfile``, the build is the ``Dockerfile`` in the
``context`` on the ``base-compat:latest`` runtime, for ``x86_64``.
A property the API does not describe is a ``TypeError``. The service
refuses a request that uses a part of the API it does not support yet
with the code ``unsupported``, and a tenant with as many builds
Expand Down
Loading