Release Definition

sfp server releasedefinition

Generate and manage release definitions based on artifacts using git tags

Commands


sfp server releasedefinition generate

Generate a release definition based on artifacts using git tags and publish to server.

USAGE
  $ sfp server releasedefinition generate -c <value> -f <value> -n <value> [--json]
    [--repository <value>] [-e <value> | -t <value>] [--sfp-server-url <value>]
    [-b <value>] [-m <value>] [--skip-publish] [--loglevel
    trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]

FLAGS
  -n, --releasename=<value>         (required) Set a release name on the release definition
  -c, --gitref=<value>              (required) Git reference (commit SHA, tag, or HEAD) to generate from
  -f, --configfile=<value>          (required) Path to the release config file
  -b, --branch=<value>              Branch name for the release definition
  -m, --metadata=<value>            Additional metadata in JSON format
  --repository=<value>              Repository identifier (e.g., owner/repo)
  --skip-publish                    Skip publishing the release definition to server
  
  AUTHENTICATION
  -e, --email=<value>               Email address for authenticated CLI user
  -t, --application-token=<value>   Application token for authentication (CI/CD)
  --sfp-server-url=<value>          URL of the SFP server
  
  OTHER OPTIONS
  --json                            Format output as json
  --loglevel=<option>               [default: info] logging level for this command invocation
                                    <options: trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL>

DESCRIPTION
  Generate a release definition based on artifacts using git tags and publish to server

  This command:
  1. Analyzes git tags at the specified reference
  2. Identifies artifacts and their versions
  3. Creates a release definition based on the config file
  4. Publishes the definition to the SFP server (unless --skip-publish)

EXAMPLES
  $ sfp server releasedefinition generate -n MyRelease -c HEAD -f config/release.yml

  $ sfp server releasedefinition generate -n MyRelease -c HEAD -b main -f config/release.yml

  $ sfp server releasedefinition generate -n MyRelease -c abc123 -f config/release.yml -m '{"env":"prod"}'

  $ sfp server releasedefinition generate -n MyRelease -c HEAD -b develop -f config/release.yml --skip-publish

  $ sfp server releasedefinition generate -n "v2.3.0" -c v2.3.0 -f config/prod-release.yml --repository myorg/myrepo

Release Configuration File

The release configuration file defines how the release should be generated:

Common Scenarios

Production Release

Staging Release

Release from Tag

Adding Metadata

Include additional metadata in the release definition:

CI/CD Integration

GitHub Actions

Jenkins Pipeline

Output Formats

Standard Output

JSON Output

Best Practices

  1. Use Semantic Versioning: Name releases with semantic version tags

  2. Include Metadata: Add relevant metadata for tracking and auditing

  3. Version Control Config: Keep release config files in version control

  4. Automate Generation: Integrate with CI/CD for consistent releases

  5. Test First: Use --skip-publish to test generation before publishing

Troubleshooting

No Artifacts Found

Invalid Git Reference

Note: The git reference must be accessible in the current repository. Ensure you have fetched all necessary tags and branches.

Tip: Use --skip-publish during testing to validate the release definition generation without publishing to the server.

Last updated