Metadata-Version: 2.4
Name: voraus-pipeline-utils
Version: 1.0.0rc5
Summary: A library containing pipeline utils for both, local usage and usage in Jenkins.
Author-email: Jan-Frederik Schmidt <jan-frederik.schmidt@vorausrobotik.com>
License-Expression: MIT
Project-URL: Repository, https://github.com/vorausrobotik/voraus-pipeline-utils
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: importlib-metadata
Requires-Dist: typer~=0.26.8
Requires-Dist: voraus-logging-lib~=2.0
Requires-Dist: requests
Requires-Dist: pydantic-settings~=2.0
Requires-Dist: PyYAML~=6.0
Requires-Dist: packaging
Dynamic: license-file

# voraus Pipeline Utils

`voraus-pipeline-utils` provides a single `vpu` command that wraps the CI/CD building blocks used
across voraus robotik projects — JFrog CLI setup, package publishing, Docker builds and documentation
uploads — behind one layered configuration.

## Installation

Install `voraus-pipeline-utils` into your environment:

```bash
uv add --dev voraus-pipeline-utils

# or with pip
pip install voraus-pipeline-utils
```

## Usage

```bash
# List every command group.
vpu --help

# Print the installed version.
vpu --version
```

See the [documentation](https://refactored-spork-5lnngky.pages.github.io/) for a guided introduction —
start with the Concepts page if Artifactory is new to you, then follow the how-to guide for your CI
system.

## Contributing

### Building the documentation

The documentation is a [Docusaurus](https://docusaurus.io/) site under `docs/`, built on the shared
[`@voraus/docusaurus-theme`](https://www.npmjs.com/package/@voraus/docusaurus-theme). Three of its
pages — the CLI reference, the license compliance page and the copy-pasteable snippets — are generated
from this repository and are not checked in.

```bash
# What CI builds, generated pages included.
uv run tox run -e docs

# Writing, with hot reload. Run the line above once first.
npm --prefix docs start
```

### Running the docker integration tests locally

The tests under `tests/integration/docker_build/` invoke a real `docker build` and only run on
Linux hosts that have the docker CLI available. To also run the multi-platform build test
locally, your machine needs (one-time setup):

1. QEMU / `binfmt_misc` for emulating non-native architectures (for cross-arch builds on x86):

   ```bash
   docker run --privileged --rm tonistiigi/binfmt --install all
   ```

   Alternatively, on Arch Linux you can install `qemu-user-static-binfmt` directly.

2. A persistent buildx builder named `multiarch` using the `docker-container` driver:

   ```bash
   docker buildx inspect multiarch >/dev/null 2>&1 \
     || docker buildx create --name multiarch --driver docker-container --bootstrap
   ```

   The test targets this builder explicitly via `--builder multiarch` and writes the resulting
   multi-arch image to an OCI tarball (`--output type=oci,dest=…`) for inspection — the docker
   daemon cannot load multi-platform images directly. On CI, the workflow creates the same-named
   builder automatically.
