A Concourse resource for working with versions of a BOSH release.
10M+
A Concourse resource for working with versions of a BOSH release. Specifically focused on support for non-bosh.io releases, private release repositories, version constraints, dev releases, and finalize-release tasks.
uri - location of the BOSH release git repositorybranch - the branch to use (optional unless using out; uses default remote branch)dev_releases - set to true to create dev releases from every commitname - a specific release name to use (default is name from config/final.yml)private_config - a hash of settings which will be serialized to config/private.yml for in/outprivate_key - a SSH private key when using private git repositoriesversion - a supported version constraint (e.g. 2.x, >= 2.3.4, >2.3.2, <3)checkGet the latest versions of the release.
When dev_releases is enabled, the version will be in the format of ((version))-dev.((commit-date-utc))+commit.((short-commit-hash)). The version number is an incremented patch from the latest final version (as of the referenced commit), followed by the commit-based, pre-release data. For example, if the last final release was 5.0.0 and the last commit was made on 2018-06-13 in dd7c33e1d... the version would be 5.0.1-dev.20180613T040837Z.commit.dd7c33e1d).
Version:
version - release versioninGet a specific version of the release.
Parameters:
tarball - create a release tarball (default true)tarball_name - file name to use for the tarball (default {{.Name}}-{{.Version}}.tgz)Resource:
name - release namerelease.tgz - source release tarballversion - release versionMetadata:
bosh - version of bosh CLI used to create the tarballtime - timestamp when the tarball was createdoutCreate a new version of the release from an existing tarball or repository checkout.
Parameters:
repository - path to a repository checkout from which to create a release (one of repository or tarball must be configured)tarball - path to an existing release tarball to finalize (one of repository or tarball must be configured)version - path to the file with contents of a specific version to usecommit_file - path to the file with contents of a commit message (default message Version {version})author_name - full name to use as commit author (default CI Bot)author_email - email address to use as commit author (default ci@localhost)rebase - enable automatic rebasing if there are conflicts on push (default false)skip_tag - disable creating an annotated tag pointing to the commit the release tarball was created with (default false)Metadata:
bosh - version of bosh CLI used to finalize the releasecommit - commit reference where the new version was finalizedcreate-dev-releaseThe create-dev-release script may be used to create a release tarball from a clone in the current working directory. See create-dev-release.yml for an example task config.
Arguments:
load-release-notesThe load-release-notes script may be used to output release notes for a given release version from a clone in the current working directory. See load-release-notes.yml for an example task config. Release notes are checked in the following order...
releases/{name}/{name}-{version}.mdv{version} or {version} (based on the clone's remote origin)Arguments:
Environment Variables:
GITHUB_TOKEN - a GitHub API OAuth authentication tokenmissing_ok - set to true to exit with success even if no release notes are foundskip_github - set to true to skip checking GitHub release notesskip_local - set to true to skip checking local release notesTo use this resource type, you should configure it in the resource_types section of your pipeline.
- name: bosh-release
type: docker-image
source:
repository: dpb587/bosh-release-resource
The default latest tag will refer to the current, stable version of this Docker image. For using the latest development version, you can refer to the master tag. If you need to refer to an older version of this image, you can refer to the appropriate v{version} tag.
bosh-io-releaseThis resource is generally equivalent to the check/get behaviors of bosh-io-release.
If you originally used the bosh-io-release...
- name: concourse
type: bosh-io-release
source:
repository: concourse/concourse
The equivalent bosh-release resource would be...
- name: concourse
type: bosh-release
source:
uri: https://github.com/concourse/concourse.git
The release tarball is named {{.Name}}-{{.Version}}.tgz. If you were not using globs (e.g. release/*.tgz) you can retain the bosh-io-release behavior by configuring tarball_name. For example...
- get: stable-release
params:
tarball_name: release.tgz
Note that url and sha1 are not provided since tarballs are built locally.
A few examples which may be helpful...
Subtle details you might care about...
commit_hash), not the commit which finalizes the release in the releases directory. This is primarily to ensure git tags match commit_hash and refer to the underlying source where changes between versions occur (as opposed to when it was finalized which may have a different set of files).commit_hash occurred.bosh's automatic major version-bumping strategy. This is primarily to encourage more explicit version management. If this becomes too burdensome, it may be worth supporting.Before committing, tests can be run locally with bin/test. After pushing, Travis CI should automatically run tests for commits and pull requests.
Content type
Image
Digest
Size
27 MB
Last updated
almost 7 years ago
docker pull dpb587/bosh-release-resource