Skip to content

Latest commit

 

History

History

README.md

Melange pipelines

This directory contains built-in pipelines. For more information on how to add new built-in pipelines, consult Creating a new built-in pipeline.

Pipeline Reference

fetch

Fetch and extract external object into workspace

Inputs

Name Required Description Default
delete false Whether to delete the fetched artifact after unpacking. false
directory false The directory to extract the artifact into (passed to tar -C) .
dns-timeout false The timeout (in seconds) to use for DNS lookups. The fetch will fail if the timeout is hit. 20
expected-none false There is no expected checksum.
expected-sha256 false The expected SHA256 of the downloaded artifact.
expected-sha512 false The expected SHA512 of the downloaded artifact.
extract false Whether to extract the downloaded artifact as a source tarball. true
purl-name false package-URL (PURL) name for use in SPDX SBOM External References ${{package.name}}
purl-version false package-URL (PURL) version for use in SPDX SBOM External References ${{package.version}}
reason false Provide reason why fetch is used, instead of git-checkout
retry-limit false The number of times to retry fetching before failing. 5
strip-components false The number of path components to strip while extracting. 1
timeout false The timeout (in seconds) to use for connecting and reading. The fetch will fail if the timeout is hit. 5
uri true The URI to fetch as an artifact.

git-am

Apply patches with git am

Inputs

Name Required Description Default
patches true A list of patches to apply with git am, as a whitespace delimited string. Patches are resolved relative to the workspace root, which is where melange copies the contents of the source directory (--source-dir, defaulting to the directory containing the melange YAML file). This is the same convention used by the 'patch' pipeline: place patch files in the package's source directory (e.g. ./my-package/) alongside the YAML file. This pipeline assumes that git-checkout used the default destination ('.'), so the workspace root is the git repository. If git-checkout clones into a subdirectory, the patches must include the path relative to the workspace root.

git-checkout

Check out sources from git

Inputs

Name Required Description Default
branch false The branch to check out, otherwise HEAD is checked out. For reproducibility, tag is generally favored over branch. Branch and tag are mutually exclusive.
cherry-picks false List of cherry picks to apply. New line separated entries. Lines can be empty. Any content on a line after # is ignored. After removing comments, each line is of the form: [branch/]commit-id: comment explaining cherry-pick comment and commit-id are required. branch on origin that the commit lives should be provided or git is not guaranteed to have a reference to the commit-id. Example: cherry-picks: 3.10/62705d869aca4055e8a96e2ed4f9013e9917c661:
depth false The depth to use when cloning. Use -1 to get full branch history. If 'branch' and 'expected-commit' are provided the default is -1. Otherwise, default is to use '1' (shallow clone). unset
destination false The path to check out the sources to. .
expected-commit false The expected commit hash
expected-commit-is-branch-tip false When "true", require that expected-commit exactly matches the tip of the checked-out branch instead of allowing any older commit on the branch. Use this when a branch is used as an immutable release pointer (e.g. version-named release branches) so that a stale expected-commit -- for example after bumping the version but forgetting to update the commit -- fails loudly instead of silently checking out old code. Only valid together with 'branch'; mutually exclusive with 'tag'. false
initial-backoff false Initial backoff duration in seconds before first retry. 2
max-backoff false Maximum backoff duration in seconds between retries. 60
max-retries false Maximum number of retry attempts for git clone operation on failure. 3
reason false Provide reason for a mutable reference.
recurse-submodules false Indicates whether --recurse-submodules should be passed to git clone. false
repository true The repository to check out sources from.
shallow-submodules false Whether to use --shallow-submodules when recurse-submodules is true. Ignored if recurse-submodules is false. false
sparse-paths false List of directory paths to checkout when using sparse-checkout (cone mode). This is useful for monorepos where you only need specific subdirectories. When specified, only these directories will be checked out from the repository. Uses cone mode for optimal performance. Example: sparse-paths: - omnibump - shared/lib
submodule-jobs false The number of concurrent jobs to use when recurse-submodules is true. Ignored if recurse-submodules is false. 1
tag false The tag to check out. Branch and tag are mutually exclusive.
type-hint false Type hint to use during SBOM generation for the provided git repository. This is primarily used to identify Gitlab based sources which are not heuristically identifiable as Gitlab. Supported hints: gitlab.

patch

Apply patches

Inputs

Name Required Description Default
fuzz false Sets the maximum fuzz factor. This option only applies to context diffs, and causes patch to ignore up to that many lines in looking for places to install a hunk. 2
patches false A list of patches to apply, as a whitespace delimited string.
series false A quilt-style patch series file to apply.
strip-components false The number of path components to strip while extracting. 1

strip

Strip binaries

Inputs

Name Required Description Default
opts false The option flags to pass to the strip command. -g