Generating a release definition
In a high velocity project operating on a trunk such as a #flxbl project and with substantial number of packages, manually generating release definition can be a chore. This can eased by using generating the release definition file automatically after every publish command. One can utilise release config along with release definition generate command to automate the process of generating release definitions.
# Community Edition
sfp releasedefinition:generate \
--gitref main \
--configfile config/release-config.yaml \
--releasename "Release-2.0.0" \
--directory releases \
--branchname releasedefns
# sfp-pro Server Edition
sfp server releasedefinition:generate \
--gitref HEAD \
--configfile config/release-config.yaml \
--releasename "Release-2.0.0" \
--repository myorg/myrepo \
--branch main
Command Attributes
Community Edition (sfp releasedefinition:generate)
-c, --gitref
Git reference (branch/tag/commit) to use for artifact selection
Yes
-f, --configfile
Path to the release configuration YAML file
Yes
-n, --releasename
Name of the release for the definition
Yes
-b, --branchname
Repository branch to push the definition to
No
-d, --directory
Directory to write the release definition file
No
--nopush
Create definition locally without pushing to repository
No
--forcepush
Force push changes to the repository branch
No
-m, --metadata
Additional metadata to include in the release definition
No
sfp-pro Edition (sfp server releasedefinition:generate)
-c, --gitref
Git reference (branch/tag/commit) to use for artifact selection
Yes
-f, --configfile
Path to the release configuration YAML file
Yes
-n, --releasename
Name of the release for the definition
Yes
-b, --branch
Branch name for context (defaults to current branch)
No
--repository
Repository identifier in the format org/repo
Yes
--skip-publish
Generate definition without publishing to server
No
-m, --metadata
Additional metadata to include in the release definition
No
--email
Email of the user generating the release
No
How It Works
The command:
Reads the release configuration file to understand which packages to include
Uses the specified git reference to determine the latest artifact versions
Generates a release definition YAML with the correct versions
Either saves locally or publishes to the server/repository
For the community edition, if --nopush
is not specified, the definition is pushed to the specified branch. For sfp-pro server edition, the definition is published to the server unless --skip-publish
is used.
Last updated