redhat/source
¶
Configure a job to build a source RPM (.src.rpm
) for this project.
Description¶
This component creates multiple jobs -- one for each chosen RedHat version -- each with a common prefix, that take in a pre-existing upstream source distribution (tarball), and use rpmbuild
to create a source RPM.
After each build rpmlint
is used to scan the new RPMs to produce a GitLab Code Quality report.
Usage¶
include:
- component: git.ligo.org/computing/gitlab/components/redhat/source@<VERSION>
Inputs¶
Input | Default value | Description |
---|---|---|
cache_dir | ".cache/rpm" | The path to cache downloaded RPMs to (relative to $CI_PROJECT_DIR ) |
disable_repos | "" | Space-separate list of RPM repo names to disable |
dnf_update | true | Update all installed packages with dnf update before proceeeding |
enable_repos | "" | Space-separate list of RPM repo names to enable |
epel | false | Pre-configure the EPEL (Extra Packages for Enterprise Linux) repository |
job_name | "redhat_source" | Name to give this job |
needs | List of jobs whose artifacts are needed for the source RPM build | |
dynamic_version | true | Automatically detect package version from Python PKG-INFO metadata file and update RPM .spec file |
redhat_versions | [8] | Versions of Red Hat to build for |
rpmbuild_options | "" | Options to pass to rpmbuild |
rpmlint_options | "" | Options to pass to rpmlint |
source_distribution_name | "*.tar.*" | Name of the source distribution file to build from |
stage | "build" | The stage to add jobs to |
Notes¶
Requires an upstream source distribution¶
Creating a source RPM is only supported when starting from an upstream tarball that contains an RPM spec (.spec
) file.
This must be configured independently of this component and the tarball provided to the redhat/source
component via the needs
input. See Examples for an example.
Customisation¶
Rpmlint¶
The output of rpmlint
can be customised by creating a file .rpmlint.toml
in the root of the git project that augments the default configuration.
See https://github.com/rpm-software-management/rpmlint#configuration for some details on the configuration format.
If you wish to choose a path other than .rpmlint.toml
for the lintian configuration file, pass that in rpmlint_options
:
include:
- component: git.ligo.org/computing/gitlab/components/redhat/source@<VERSION>
inputs:
rpmlint_options: "---config myrpmlint_config.toml"
Examples¶
Build a source RPM for a Python project¶
Create a source RPM for a Python project
include:
# generate a source distribution
- component: git.ligo.org/computing/gitlab/components/python/sdist@0.1
inputs:
stage: source
job_name: sdist
# generate a source RPM
- component: git.ligo.org/computing/gitlab/components/redhat/source@<VERSION>
inputs:
needs: [sdist]