Github Attestation
Generates a list of artifacts that may be supplied as input to the actions/attest-build-provenance
GitHub Action. The list will be saved in a file named after the chosen attestationName
. The contents of this file may
be used as an input, for example
my-release-workflow.yml
- name: Release
uses: jreleaser/release-action@v2
with:
arguments: release
env:
JRELEASER_PROJECT_VERSION: <my-project-version>
- run: echo "ARTIFACTS=$(cat out/jreleaser/catalogs/github/<my-chosen-attestation-name>)" >> $GITHUB_OUTPUT
- name: Attestations
uses: actions/attest-build-provenance@v1
with:
subject-path: |
${{ ARTIFACTS }}
Configuration
Legend:
-
required
-
optional
-
may use environment variable
-
accepts Name Templates
catalog:
#
github:
# Enable or disable this cataloger.
# Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
# Defaults to `NEVER`.
#
active: ALWAYS
# Name of the attestation file.
# Defaults to `{{projectName}}-{{projectEffectiveVersion}}`.
#
attestationName: 'app-all-{{projectVersion}}'
# Check distribution artifacts.
# Defaults to `true`.
#
artifacts: true
# Check files.
# Defaults to `true`.
#
files: true
# Check deployable artifacts.
# Defaults to `true`.
#
deployables: true
# A set of artifacts to include.
#
includes:
- '**/*.zip'
# A set of artifacts to exclude.
#
excludes:
- '**/*.asc'
# Additional properties used when evaluating templates.
#
extraProperties:
# Key will be capitalized and prefixed with `github`, i.e, `githubFoo`.
foo: bar
#
[catalog.github]
# Enable or disable this cataloger.
# Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
# Defaults to `NEVER`.
#
active = "ALWAYS"
# Name of the attestation file.
# Defaults to `{{projectName}}-{{projectEffectiveVersion}}`.
#
attestationName = "app-all-{{projectVersion}}"
# Check distribution artifacts.
# Defaults to `true`.
#
artifacts = true
# Check files.
# Defaults to `true`.
#
files = true
# Check deployable artifacts.
# Defaults to `true`.
#
deployables = true
# A set of artifacts to include.
#
includes = ["**/*.zip"]
# A set of artifacts to exclude.
#
excludes = ["**/*.asc"]
# Additional properties used when evaluating templates.
#
extraProperties.foo = "bar"
# Key will be capitalized and prefixed with `github`, i.e, `githubFoo`.
{
"catalog": {
//
"github": {
// Enable or disable this cataloger.
// Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
// Defaults to `NEVER`.
//
"active": "ALWAYS",
// Name of the attestation file.
// Defaults to `{{projectName}}-{{projectEffectiveVersion}}`.
//
"attestationName": "app-all-{{projectVersion}}",
// Check distribution artifacts.
// Defaults to `true`.
//
"artifacts": true,
// Check files.
// Defaults to `true`.
//
"files": true,
// Check deployable artifacts.
// Defaults to `true`.
//
"deployables": true,
// A set of artifacts to include.
//
"includes": ["**/*.zip"],
// A set of artifacts to exclude.
//
"excludes": ["**/*.asc"],
// Additional properties used when evaluating templates.
//
"extraProperties": {
// Key will be capitalized and prefixed with `github`, i.e, `githubFoo`.
"foo": "bar"
}
}
}
}
<jreleaser>
<!--
-->
<catalog>
<!--
-->
<github>
<!--
Enable or disable this cataloger.
Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
Defaults to `NEVER`.
-->
<active>ALWAYS</active>
<!--
Name of the attestation file.
Defaults to `{{projectName}}-{{projectEffectiveVersion}}`.
-->
<attestationName>app-all-{{projectVersion}}</attestationName>
<!--
Check distribution artifacts.
Defaults to `true`.
-->
<artifacts>true</artifacts>
<!--
Check files.
Defaults to `true`.
-->
<files>true</files>
<!--
Check deployable artifacts.
Defaults to `true`.
-->
<deployables>true</deployables>
<!--
A set of artifacts to include.
-->
<includes>
<include>**/*.zip</include>
</includes>
<!--
A set of artifacts to exclude.
-->
<excludes>
<exclude>**/*.asc</exclude>
</excludes>
<!--
Additional properties used when evaluating templates.
-->
<extraProperties>
<!--
Key will be capitalized and prefixed with `github`, i.e, `githubFoo`.
-->
<foo>bar</foo>
</extraProperties>
</github>
</catalog>
</jreleaser>
jreleaser {
catalog {
//
github {
// Enable or disable this cataloger.
// Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
// Defaults to `NEVER`.
//
active = 'ALWAYS'
// Name of the attestation file.
// Defaults to `{{projectName}}-{{projectEffectiveVersion}}`.
//
attestationName = 'app-all-{{projectVersion}}'
// Check distribution artifacts.
// Defaults to `true`.
//
artifacts = true
// Check files.
// Defaults to `true`.
//
files = true
// Check deployable artifacts.
// Defaults to `true`.
//
deployables = true
// A set of artifacts to include.
//
includes('**/*.zip')
// A set of artifacts to exclude.
//
exclude('**/*.asc')
// Additional properties used when evaluating templates.
// Key will be capitalized and prefixed with `github`, i.e, `githubFoo`.
//
extraProperties.put('foo', 'bar')
}
}
}
Environment
When not explicitly set, the value of the following properties may be resolved from an environment variable or a system property as shown in the table. The system property takes precedence over the environment variable.
System Property | Environment Variable |
---|---|
active |
|
jreleaser.catalog.github.active |
JRELEASER_CATALOG_GITHUB_ACTIVE |
attestationName |
|
jreleaser.catalog.github.attestation.name |
JRELEASER_CATALOG_GITHUB_ATTESTATION_NAME |