Standard for discovery and consumption of Docker containerized jobs.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
spec
.gitignore
.grenrc.json
.travis.yml
.versions
CHANGELOG.md
LICENSE
generate-release.sh
readme.adoc
set-version.sh

readme.adoc

wordmark

seed seed

Seed is a general standard to aid in the discovery and consumption of a discrete unit of work contained within a Docker image.

See the specification for details.

Usage

The specification is intended to inform both job and execution framework developers. Detailed examples are provided for Seed usage in both simple and complex job scenarios and these are recommended for job developers interested in getting started quickly.

The Seed team provides a fully featured CLI to minimize the domain expertise required for a job developer to get a Seed image ready for distribution. This will handle the Docker image construction and publish, so focus can be given to what really matters - describing your job’s purpose, requirements and interface.

Silo offers a REST API, also implemented by the Seed team, for discovering Seed images. The API allows users to scan one or more repositories for Seed images and then search the resulting images and their manifests by keywords. An implementer can leverage these endpoints to assist users in discovering Seed images and creating jobs out of them.

Development

All Seed documentation is made via the excellent AsciiDoc standard. Travis CI is used to compile all the documentation into html / pdf releases and update the GitHub pages site with all available Seed releases.

Complilation of repo documentation can be performed locally using this command:

spec/generate-outputs.sh

Output files will be placed under spec/output.

Releases

Generation of new releases may be done from a clean master branch:

./generate-release.sh 1.0.0

This will create a new tag, that will kick off a TravisCI tag build to create release artifacts, update the master branch with a pointer to that release and finally a TravisCI build of master to update GitHub pages with the permalink to all available releases.

You can also easily generate release notes and nicely formatted changelog by using the gren CLI:

# Assuming gren installed via NPM globally. If not, find here: https://github.com/github-tools/github-release-notes
gren release --override
gren changelog --override
git commit -a -m "Update changelog for release"
git push