Use the images provided by `osbuild/containers` tagged as GHCI (GitHub CI). These images are fully under our control, cached on the GitHub infrastructure, and prepared to run `systemd-nspawn` and friends in a docker container. The GHCI infrastructure is versioned. New updates to the CI infrastructure are not automatically picked up. Instead, the `v1` tag has to be explicitly redirected to new image builds to deploy them. If a new deployment causes CI failures, we can simply redirect the `v1` tag back to the previous image builds and get the previous behavior back. The `osbuild/containers` repository contains the required infrastructure for this logic. If new dependencies are required in the CI environment, the respective Dockerfiles must be updated. As a temporary workaround (e.g., as part of a PR that introduces this), you can simply add `dnf install -y <package>` to the required entries in `.github/workflows/*`. |
||
|---|---|---|
| .github/workflows | ||
| assemblers | ||
| docs | ||
| jenkins | ||
| osbuild | ||
| runners | ||
| samples | ||
| schemas | ||
| schutzbot | ||
| sources | ||
| stages | ||
| test | ||
| .editorconfig | ||
| .gitignore | ||
| .pylintrc | ||
| .travis.yml | ||
| LICENSE | ||
| Makefile | ||
| NEWS.md | ||
| osbuild.spec | ||
| README.md | ||
| requirements.txt | ||
| setup.py | ||
| tree-diff | ||
OSBuild
Build-Pipelines for Operating System Artifacts
OSBuild is a pipeline-based build system for operating system artifacts. It defines a universal pipeline description and a build system to execute them, producing artifacts like operating system images, working towards an image build pipeline that is more comprehensible, reproducible, and extendable.
See the osbuild(1) man-page for details on how to run osbuild, the definition
of the pipeline description, and more.
Project
- Website: https://www.osbuild.org
- Bug Tracker: https://github.com/osbuild/osbuild/issues
Requirements
The requirements for this project are:
python >= 3.7systemd-nspawn >= 244
Additionally, the built-in stages require:
bash >= 5.0coreutils >= 8.31curl >= 7.68qemu-img >= 4.2.0rpm >= 4.15tar >= 1.32util-linux >= 235
At build-time, the following software is required:
python-docutils >= 0.13pkg-config >= 0.29
Build
The standard python package system is used. Consult upstream documentation for detailed help. In most situations the following commands are sufficient to build and install from source:
python setup.py build
python setup.py install --skip-build --root=/
The man-pages require python-docutils and can be built via:
rst2man docs/<input-file>.rst <output-file>
Repository:
- web: https://github.com/osbuild/osbuild
- https:
https://github.com/osbuild/osbuild.git - ssh:
git@github.com:osbuild/osbuild.git
License:
- Apache-2.0
- See LICENSE file for details.