edgeXRelease
Overview
Shared library with helper functions to manage releases. This is the main entry point for all automated releases using the 🔗 cd-management/release repository.
Required Yaml
Name | Required | Type | Description and Default Value |
---|---|---|---|
name | true | str | Name of the repository that is being released. |
version | true | str | Semver version to be released. |
releaseName | true | str | The codename of the release. This is usually used by sub release processes for naming. |
releaseStream | true | str | What branch the release is being generated from. (This has been superseded by commitId) |
commitId | true | str | Git Commit SHA to tag or branch for the release. |
repo | true | str | https git repository url. Example: https://github.com/edgexfoundry/<repo>.git |
Functions
edgeXRelease.collectReleaseYamlFiles
: Search through a provided file path and find all the release yaml files to process and parses yaml into a Groovy object using thereadYaml
function. Default file pattern to search for will be:release/*.yaml
. This function will also validate what files have changed in the commit usingedgex.didChange
and will only release what was changed.edgeXRelease.parallelStepFactory
: Returns a Closure to execute the release for all release yaml entries found for the specific commit.edgeXRelease.parallelStepFactoryTransform
: Transforms release yaml Groovy object into a Groovy Closure containing all the logic needed to perform the release for the specific repository.edgeXRelease.stageArtifact
: If release contains binaries rather than docker images, the binaries need to be staged before the release occurs. This function forces a build of the artifact by triggering the job using thebuild(job: ..)
Jenkins function.edgeXRelease.getBuilderImagesFromReleasedImages
: Used to determine what static builder image to use when building a LTS C based repository. Below you can see the transformation.// Given the release of the following 2 docker images: edgeXRelease.getBuilderImagesFromReleasedImages('nexus3.edgexfoundry.org:10004/sample-service-c') > nexus3.edgexfoundry.org:10002/sample-service-c-builder-x86_64:jakarta edgeXRelease.getBuilderImagesFromReleasedImages('nexus3.edgexfoundry.org:10004/sample-service-c-arm64') > nexus3.edgexfoundry.org:10002/sample-service-c-builder-arm64:jakarta