Given a list of arches, koji can build multiple images in one go
(automatically starting children tasks for each one).
This causes a bunch of changes:
* The configuration no longer allows changing config based on
architecture, only variants are allowed. It is however possible to
filter which arches are used for the building in the variant.
* The configuration files for koji image-build are stored in
work/image-build/$variant (not split based on arch).
This patch also changes the option name that is passed to koji
image-build: the repos should be specified under key `repo` (without the
trailing slash).
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
The code modifies the config in place, so it only works in the first
iteration. The fix is to create a copy which can be safely modified and
next iteration will still see the original data.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
The images listed in the file are obtained from .treeinfo files created
during buildinstall phase. However, the files are not stored directly in
buildinstall dir `work/$arch/buildinstall/` but in variant subdirectory
`work/$arch/buildinstall/$variant`.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
First, this fixes the crash when volume id requires variant uid, but it
is not specified. This happened in buildinstall phase.
When lorax is used, it is run once for each variant, so we can actually
specify the variant and get the correct variant.
When using buildinstall, no volume id will be generated and pungi will
possibly crash later on.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
There is a new configuration option that allows listing what can fail
without aborting the whole compose. So far, only buildinstall, createiso
and liveimages phases react to this option.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
The computation of image name has been moved to a separate function.
This allowed simplification in how work dir for isos is computed, but
the result is not changed.
The live image phase has some special casing for names of RPM wrapped
ISOs. This is moved to the actual phase. Since this is (and has been)
undocumented, there should not be many users of this special case.
The documentation is updated to describe how image names and volume ids
are determined and how the process can be customized.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
When the image build configuration specifies kickstart URL as a HEAD of
a git repo, pungi now figures out what the actual hash of that commit is
and uses that hash instead. This might make logs clearer and should
prevent potential problems if someone pushes to that repo during
composing.
Documentation is updated to mention this.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
The config file can now specify options for lorax per variant and arch.
This is needed for Fedora to set x86_64 images as bootable on mac.
The old config option `buildinstall_upgrade_image` was deprecated, as
the same can be specified via new `lorax_options`.
Documentation and tests are updated.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
Lorax fails when run on an existing non-empty directory. This patch runs
it in separate subdirectiories base on variant. Running with
buildinstall should not be changed at all.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
The buildinstall phase now starts lorax for each variant separately.
Running with buildinstall should not be affected in any way.
Only variants of type=variant are considered. The side-effect of this is
that if an architecture is only used by variants of other types, lorax
will not be called at all.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
The lorax wrapper class now understands the --installpkgs argument and
can use it to pass multiple package names to the command.
There is a simple test to make sure the commands includes all specified
options. A bug is fixed where the bug URL would not be correctly
included.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This patch updates the variants DTD and parsing to allow specifying
multiple build install packages for each variant.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
The test only checks that commands are created with correct arguments
and that a proper number of threads is started. There is no validation
for what the threads are actually doing.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This patch modifies how checksums are stored - it uses BSD-style
checksums.
The filename with the checksum can now be customized depending on actual
compose run and metadata. This required adding another option to the
checksumming phase. Documentation is updated and includes example for
creating names used in Fedora.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
On case-insensitive filesystems it is not such a good idea to have
directories that only differ in case. Packages should be always split
into lowercased directories.
The test data is modified to include some packages starting with
uppercase letters. The example in code can be verified by running
`nosetests --with-doctest`.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
getting the commands together to run the iso creation process was
incorrectly moved when jigdo creation was made optional, patch fixes
https://pagure.io/pungi/issue/77
Signed-off-by: Dennis Gilmore <dennis@ausil.us>
a workaround has been put in place on os's that need it. dnf errors
when a package is listed that is not available. breaking rawhide
composes.
Signed-off-by: Dennis Gilmore <dennis@ausil.us>
The messaging is not really part of compose settings. It is an
infrastructure part. As such, it should really be set up as part of
pungi invocation, not compose configuration.
The documentation is updated to reflect this. Some updates to the
documentation are done as well: listing messages about ISOs and minor
formatting updates.
The test_compose.sh script can now accept additional command line
options and pass them on to pungi-koji to simplify testing.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
Add information on setting up development environment, running tests and
generating documentation.
Also update .gitignore to list files that will be generated during
testing.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
Instead of hardcoding /usr/bin/python in shebangs, use /usr/bin/env.
This allows Pungi to work with dependencies installed in virtualenv.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
When phase starts, a message is sent with list of images that are going
to be built. As each images is finished (or fails), another message
announces that status.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
With this patch, Pungi can invoke an arbitrary command on various
moments of the compose process. The invoked command can the decide on
what message to send (and using what messaging system).
The actual command is specified in the config file.
There is a script provided that sends the messages via fedmsg.
The documentation is updated to have details about the new config option
as well as the interface for the messaging script.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
The phase goes through all images declared in image manifest, computes
their checksums, stores them in appropriate files and updates the
manifest so that it includes the actual checksums.
The documentation contains details about new configuration options.
The test suite now needs Python's mock package.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
These phases were computing checksums for images:
* buildinstall
* createiso
* image_build
* live_images
* product_img
In each phase the checksummed thing would ultimately end-up in image
manifest.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
The checksums are still generated in the ImageBuild and CreatISO phases,
but collecting of them into single file is moved from pungi-koji script
into a separate phase.
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>