Melange
Melange pipeline config
| Type | Configuration |
|---|---|
| File match |
melange.json
*.melange.json
melange.yaml
*.melange.yaml
melange.yml
*.melange.yml
|
| Schema URL | https://catalog.lintel.tools/schemas/schemastore/melange/latest.json |
| Source | https://raw.githubusercontent.com/chainguard-dev/melange/main/pkg/config/schema.json |
Validate with Lintel
npx @lintel/lintel check
Definitions
BuildOption describes an optional deviation to a package build.
EnvironmentOption describes an optional deviation to an apko environment.
CPE stores values used to produce a CPE to describe the package, suitable for matching against NVD records.
Capabilities is the configuration for Linux capabilities for the runner.
Linux process capabilities to add to the pipeline container.
Linux process capabilities to drop from the pipeline container.
Capability stores paths and an associated map of capabilities and justification to include in a package.
Optional: disable these linters that are not enabled by default.
Configuration is the root melange configuration.
18 nested properties
The name of the package
The version of the package
The monotone increasing epoch of the package
5 nested properties
Optional: List of runtime dependencies
Optional: List of packages provided
Optional: List of replace objectives
Optional: An integer string compared against other equal package provides used to determine priority of provides
Optional: An integer string compared against other equal package provides used to determine priority of file replacements
1 nested properties
Optional: disable these linters that are not enabled by default.
CPE stores values used to produce a CPE to describe the package, suitable for matching against NVD records.
9 nested properties
A human-readable description of the package
Annotations for this package
The URL to the package's homepage
Optional: The git commit of the package build configuration
List of target architectures for which this package should be build for
The list of copyrights for this package
4 nested properties
Optional: Signify this package as a virtual package which does not provide any files, executables, libraries, etc... and is otherwise empty
Optional: Mark this package as a self contained package that does not depend on any other package
Optional: Mark this package as not providing any executables
Optional: Don't generate versioned depends for shared libraries
7 nested properties
Optional: The script to run pre install. The script should contain the shebang interpreter.
Optional: The script to run post install. The script should contain the shebang interpreter.
Optional: The script to run before uninstalling. The script should contain the shebang interpreter.
Optional: The script to run after uninstalling. The script should contain the shebang interpreter.
Optional: The script to run before upgrading. The script should contain the shebang interpreter.
Optional: The script to run after upgrading. The script should contain the shebang interpreter.
Capabilities to set after the pipeline completes.
Optional: The amount of time to allow this build to take before timing out.
4 nested properties
4 nested properties
15 nested properties
6 nested properties
4 nested properties
2 nested properties
2 nested properties
Capabilities is the configuration for Linux capabilities for the runner.
2 nested properties
Linux process capabilities to add to the pipeline container.
Linux process capabilities to drop from the pipeline container.
Update provides information used to describe how to keep the package up to date
15 nested properties
Toggle if updates should occur
Indicates that this package should be manually updated, usually taking care over special version numbers
Indicates that automated pull requests should be merged in order rather than superseding and closing previous unmerged PRs
Indicate that an update to this package requires an epoch bump of downstream dependencies, e.g. golang, java
Override the version separator if it is nonstandard
A slice of regex patterns to match an upstream version and ignore
ReleaseMonitor indicates using the API for https://release-monitoring.org/
5 nested properties
Required: ID number for release monitor
If the version in release monitor contains a prefix which should be ignored
If the version in release monitor contains a suffix which should be ignored
Filter to apply when searching version on a Release Monitoring
Filter to apply when searching version Release Monitoring
GitHubMonitor indicates using the GitHub API
7 nested properties
Org/repo for GitHub
If the version in GitHub contains a prefix which should be ignored
If the version in GitHub contains a suffix which should be ignored
Filter to apply when searching tags on a GitHub repository
Deprecated: Use TagFilterPrefix instead
Prefix filter to apply when searching tags on a GitHub repository
Filter to apply when searching tags on a GitHub repository
Override the default of using a GitHub release to identify related tag to fetch. Not all projects use GitHub releases but just use tags
GitMonitor indicates using Git
4 nested properties
StripPrefix is the prefix to strip from the version
If the version in GitHub contains a suffix which should be ignored
Prefix filter to apply when searching tags on a GitHub repository
Filter to apply when searching tags on a GitHub repository
OCIMonitor indicates using OCI image tags
5 nested properties
Required: OCI image reference (e.g. cgr.dev/chainguard/node)
If the version in the tag contains a prefix which should be ignored
If the version in the tag contains a suffix which should be ignored
Prefix filter to apply when searching tags
Substring filter to apply when searching tags
VersionDataMonitor indicates using chainguard version data
2 nested properties
Format string for composing the version, using ${{source_name.field}} placeholders
The list of upstream sources to fetch version data from
The configuration block for transforming the package.version into an APK version
ExcludeReason is required if enabled=false, to explain why updates are disabled.
Schedule defines the schedule for the update check to run
2 nested properties
The reason scheduling is being used
Optional: Disables filtering of common pre-release tags
Required: The list of pipelines that produce the package.
Optional: The list of subpackages that this package also produces.
Optional: An arbitrary list of data that can be used via templating in the pipeline
Optional: A map of arbitrary variables that can be used via templating in the pipeline
Optional: A list of transformations to create for the builtin template variables
Optional: Deviations to the build
2 nested properties
15 nested properties
Required: The list of pipelines that test the produced package.
ContentsOption describes an optional deviation to an apko environment's contents block.
ListOption describes an optional deviation to a list, for example, a list of packages.
2 nested properties
Required: The license for this package
Optional: The license paths, typically '*'
Optional: Attestations of the license
Optional: Path to text of the custom License Ref
Optional: License override
Optional: List of runtime dependencies
Optional: List of packages provided
Optional: List of replace objectives
Optional: An integer string compared against other equal package provides used to determine priority of provides
Optional: An integer string compared against other equal package provides used to determine priority of file replacements
EnvironmentOption describes an optional deviation to an apko environment.
ContentsOption describes an optional deviation to an apko environment's contents block.
1 nested properties
ListOption describes an optional deviation to a list, for example, a list of packages.
2 nested properties
GitHubMonitor indicates using the GitHub API
Org/repo for GitHub
If the version in GitHub contains a prefix which should be ignored
If the version in GitHub contains a suffix which should be ignored
Filter to apply when searching tags on a GitHub repository
Deprecated: Use TagFilterPrefix instead
Prefix filter to apply when searching tags on a GitHub repository
Filter to apply when searching tags on a GitHub repository
Override the default of using a GitHub release to identify related tag to fetch. Not all projects use GitHub releases but just use tags
GitMonitor indicates using Git
StripPrefix is the prefix to strip from the version
If the version in GitHub contains a suffix which should be ignored
Prefix filter to apply when searching tags on a GitHub repository
Filter to apply when searching tags on a GitHub repository
6 nested properties
2 nested properties
4 nested properties
2 nested properties
2 nested properties
2 nested properties
Optional: The human-readable description of the input
Optional: The default value of the input. Required when the input is.
Optional: A toggle denoting whether the input is required or not
ListOption describes an optional deviation to a list, for example, a list of packages.
A list of packages needed by this pipeline
OCIMonitor indicates using OCI image tags
Required: OCI image reference (e.g. cgr.dev/chainguard/node)
If the version in the tag contains a prefix which should be ignored
If the version in the tag contains a suffix which should be ignored
Prefix filter to apply when searching tags
Substring filter to apply when searching tags
The name of the package
The version of the package
The monotone increasing epoch of the package
5 nested properties
Optional: List of runtime dependencies
Optional: List of packages provided
Optional: List of replace objectives
Optional: An integer string compared against other equal package provides used to determine priority of provides
Optional: An integer string compared against other equal package provides used to determine priority of file replacements
1 nested properties
Optional: disable these linters that are not enabled by default.
CPE stores values used to produce a CPE to describe the package, suitable for matching against NVD records.
9 nested properties
A human-readable description of the package
Annotations for this package
The URL to the package's homepage
Optional: The git commit of the package build configuration
List of target architectures for which this package should be build for
The list of copyrights for this package
4 nested properties
Optional: Signify this package as a virtual package which does not provide any files, executables, libraries, etc... and is otherwise empty
Optional: Mark this package as a self contained package that does not depend on any other package
Optional: Mark this package as not providing any executables
Optional: Don't generate versioned depends for shared libraries
7 nested properties
2 nested properties
Optional: The script to run
Optional: The list of paths to monitor to trigger the script
Optional: The script to run pre install. The script should contain the shebang interpreter.
Optional: The script to run post install. The script should contain the shebang interpreter.
Optional: The script to run before uninstalling. The script should contain the shebang interpreter.
Optional: The script to run after uninstalling. The script should contain the shebang interpreter.
Optional: The script to run before upgrading. The script should contain the shebang interpreter.
Optional: The script to run after upgrading. The script should contain the shebang interpreter.
Capabilities to set after the pipeline completes.
Optional: The amount of time to allow this build to take before timing out.
4 nested properties
4 nested properties
Optional: Signify this package as a virtual package which does not provide any files, executables, libraries, etc... and is otherwise empty
Optional: Mark this package as a self contained package that does not depend on any other package
Optional: Mark this package as not providing any executables
Optional: Don't generate versioned depends for shared libraries
Optional: A condition to evaluate before running the pipeline
Optional: A user defined name for the pipeline
Optional: A named reusable pipeline to run
This can be either a pipeline builtin to melange, or a user defined named pipeline. For example, to use a builtin melange pipeline: uses: autoconf/make
Optional: Arguments passed to the reusable pipelines defined in uses
Optional: The command to run using the builder's shell (/bin/sh)
Optional: The list of pipelines to run.
Each pipeline runs in its own context that is not shared between other
pipelines. To share context between pipelines, nest a pipeline within an
existing pipeline. This can be useful when you wish to share common
configuration, such as an alternative working-directory.
Optional: A map of inputs to the pipeline
1 nested properties
A list of packages needed by this pipeline
Optional: Labels to apply to the pipeline
1 nested properties
The number (an int) of required steps that must complete successfully within the asserted pipeline.
Optional: The working directory of the pipeline
This defaults to the guests' build workspace (/home/build)
Optional: environment variables to override apko
The number (an int) of required steps that must complete successfully within the asserted pipeline.
ReleaseMonitor indicates using the API for https://release-monitoring.org/
Required: ID number for release monitor
If the version in release monitor contains a prefix which should be ignored
If the version in release monitor contains a suffix which should be ignored
Filter to apply when searching version on a Release Monitoring
Filter to apply when searching version Release Monitoring
Schedule defines the schedule for the update check to run
The reason scheduling is being used
2 nested properties
Optional: The script to run
Optional: The list of paths to monitor to trigger the script
Optional: The script to run pre install. The script should contain the shebang interpreter.
Optional: The script to run post install. The script should contain the shebang interpreter.
Optional: The script to run before uninstalling. The script should contain the shebang interpreter.
Optional: The script to run after uninstalling. The script should contain the shebang interpreter.
Optional: The script to run before upgrading. The script should contain the shebang interpreter.
Optional: The script to run after upgrading. The script should contain the shebang interpreter.
Required: Name of the subpackage
5 nested properties
Optional: List of runtime dependencies
Optional: List of packages provided
Optional: List of replace objectives
Optional: An integer string compared against other equal package provides used to determine priority of provides
Optional: An integer string compared against other equal package provides used to determine priority of file replacements
1 nested properties
Optional: disable these linters that are not enabled by default.
Optional: A conditional statement to evaluate for the subpackage
Optional: The iterable used to generate multiple subpackages
Optional: The list of pipelines that produce subpackage.
4 nested properties
Optional: Signify this package as a virtual package which does not provide any files, executables, libraries, etc... and is otherwise empty
Optional: Mark this package as a self contained package that does not depend on any other package
Optional: Mark this package as not providing any executables
Optional: Don't generate versioned depends for shared libraries
7 nested properties
2 nested properties
Optional: The script to run
Optional: The list of paths to monitor to trigger the script
Optional: The script to run pre install. The script should contain the shebang interpreter.
Optional: The script to run post install. The script should contain the shebang interpreter.
Optional: The script to run before uninstalling. The script should contain the shebang interpreter.
Optional: The script to run after uninstalling. The script should contain the shebang interpreter.
Optional: The script to run before upgrading. The script should contain the shebang interpreter.
Optional: The script to run after upgrading. The script should contain the shebang interpreter.
Optional: The human readable description of the subpackage
Optional: The URL to the package's homepage
Optional: The git commit of the subpackage build configuration
2 nested properties
15 nested properties
Required: The list of pipelines that test the produced package.
Capabilities to set after the pipeline completes.
15 nested properties
6 nested properties
4 nested properties
2 nested properties
2 nested properties
Required: The list of pipelines that test the produced package.
Optional: The script to run
Optional: The list of paths to monitor to trigger the script
Update provides information used to describe how to keep the package up to date
Toggle if updates should occur
Indicates that this package should be manually updated, usually taking care over special version numbers
Indicates that automated pull requests should be merged in order rather than superseding and closing previous unmerged PRs
Indicate that an update to this package requires an epoch bump of downstream dependencies, e.g. golang, java
Override the version separator if it is nonstandard
A slice of regex patterns to match an upstream version and ignore
ReleaseMonitor indicates using the API for https://release-monitoring.org/
5 nested properties
Required: ID number for release monitor
If the version in release monitor contains a prefix which should be ignored
If the version in release monitor contains a suffix which should be ignored
Filter to apply when searching version on a Release Monitoring
Filter to apply when searching version Release Monitoring
GitHubMonitor indicates using the GitHub API
7 nested properties
Org/repo for GitHub
If the version in GitHub contains a prefix which should be ignored
If the version in GitHub contains a suffix which should be ignored
Filter to apply when searching tags on a GitHub repository
Deprecated: Use TagFilterPrefix instead
Prefix filter to apply when searching tags on a GitHub repository
Filter to apply when searching tags on a GitHub repository
Override the default of using a GitHub release to identify related tag to fetch. Not all projects use GitHub releases but just use tags
GitMonitor indicates using Git
4 nested properties
StripPrefix is the prefix to strip from the version
If the version in GitHub contains a suffix which should be ignored
Prefix filter to apply when searching tags on a GitHub repository
Filter to apply when searching tags on a GitHub repository
OCIMonitor indicates using OCI image tags
5 nested properties
Required: OCI image reference (e.g. cgr.dev/chainguard/node)
If the version in the tag contains a prefix which should be ignored
If the version in the tag contains a suffix which should be ignored
Prefix filter to apply when searching tags
Substring filter to apply when searching tags
VersionDataMonitor indicates using chainguard version data
2 nested properties
Format string for composing the version, using ${{source_name.field}} placeholders
The list of upstream sources to fetch version data from
The configuration block for transforming the package.version into an APK version
ExcludeReason is required if enabled=false, to explain why updates are disabled.
Schedule defines the schedule for the update check to run
2 nested properties
The reason scheduling is being used
Optional: Disables filtering of common pre-release tags
Required: The original template variable.
Example: ${{package.version}}
Required: The regular expression to match against the from variable
Required: The repl to replace on all match matches
Required: The name of the new variable to create
Example: mangeled-package-version
VersionDataMonitor indicates using chainguard version data
Format string for composing the version, using ${{source_name.field}} placeholders
The list of upstream sources to fetch version data from
VersionDataSource defines an individual upstream source for version data
The name of the source, used to reference it in the format string
The stream to track for updates (e.g. "12.6", "9")
A list of regex patterns to ignore when matching upstream versions
The source whose commits to use when multiple sources are configured
Whether to use GitHub releases as the tag source instead of git tags
VersionTransform allows mapping the package version to an APK version
Required: The regular expression to match against the package.version variable
Required: The repl to replace on all match matches