56 lines
2.0 KiB
ReStructuredText
56 lines
2.0 KiB
ReStructuredText
|
.. _scm_support:
|
||
|
|
||
|
Exporting files from SCM
|
||
|
========================
|
||
|
|
||
|
Multiple places in Pungi can use files from external storage. The configuration
|
||
|
is similar independently of the backend that is used, although some features
|
||
|
may be different.
|
||
|
|
||
|
The so-called ``scm_dict`` is always put into configuration as a dictionary,
|
||
|
which can contain following keys.
|
||
|
|
||
|
* ``scm`` -- indicates which SCM system is used. This is always required.
|
||
|
Allowed values are:
|
||
|
|
||
|
* ``file`` -- copies files from local filesystem
|
||
|
* ``git`` -- copies files from a Git repository
|
||
|
* ``cvs`` -- copies files from a CVS repository
|
||
|
* ``rpm`` -- copies files from a package in the compose
|
||
|
|
||
|
* ``repo`` -- for Git and CVS backends URL to the repository, for RPM a shell
|
||
|
glob for matching package names (or a list of such globs); for ``file``
|
||
|
backend this option should be empty (or left out)
|
||
|
|
||
|
* ``branch`` -- branch name for Git and CVS backends, with ``master`` and
|
||
|
``HEAD`` as defaults. Ignored for other backends.
|
||
|
|
||
|
* ``file`` -- a list of files that should be exported.
|
||
|
|
||
|
* ``dir`` -- a directory that should be exported. All its contents will be
|
||
|
exported. This option is mutually exclusive with ``file``.
|
||
|
|
||
|
* ``command`` -- defines a shell command to run after Git clone to generate the
|
||
|
needed file (for example to run ``make``). Only supported in Git backend.
|
||
|
|
||
|
|
||
|
``file`` vs. ``dir``
|
||
|
--------------------
|
||
|
|
||
|
Exactly one of these two options has to be specified. Documentation for each
|
||
|
configuration option should specify whether it expects a file or a directory.
|
||
|
|
||
|
For ``extra_files`` phase either key is valid and should be chosen depending on
|
||
|
what the actual use case.
|
||
|
|
||
|
|
||
|
Caveats
|
||
|
-------
|
||
|
|
||
|
The ``rpm`` backend can only be used in phases that would extract the files
|
||
|
after ``pkgset`` phase finished. You can't get comps file from a package.
|
||
|
|
||
|
Depending on Git repository URL configuration Pungi can only export the
|
||
|
requested content using ``git archive``. When a command should run this is not
|
||
|
possible and a clone is always needed.
|