add git_url to metadata, add git to buildargs

This commit is contained in:
Jimmy Zelinskie 2015-03-19 18:09:27 -04:00
parent f6f93e9079
commit b851986cf5
2 changed files with 17 additions and 8 deletions

View file

@ -107,8 +107,6 @@ class BuildComponent(BaseComponent):
# Parse the build queue item into build arguments. # Parse the build queue item into build arguments.
# build_package: URL to the build package to download and untar/unzip. # build_package: URL to the build package to download and untar/unzip.
# git_url: URL to clone a repository if there's no buildpack.
# git_key: ssh key to clone a repository.
# sub_directory: The location within the build package of the Dockerfile and the build context. # sub_directory: The location within the build package of the Dockerfile and the build context.
# repository: The repository for which this build is occurring. # repository: The repository for which this build is occurring.
# registry: The registry for which this build is occuring (e.g. 'quay.io', 'staging.quay.io'). # registry: The registry for which this build is occuring (e.g. 'quay.io', 'staging.quay.io').
@ -122,15 +120,22 @@ class BuildComponent(BaseComponent):
# password: The password for pulling the base image (if any). # password: The password for pulling the base image (if any).
build_arguments = { build_arguments = {
'build_package': buildpack_url, 'build_package': buildpack_url,
'git_url': build_config.get('git_url', ''),
'git_key': build_config.get('git_key', ''),
'sub_directory': build_config.get('build_subdir', ''), 'sub_directory': build_config.get('build_subdir', ''),
'repository': repository_name, 'repository': repository_name,
'registry': self.registry_hostname, 'registry': self.registry_hostname,
'pull_token': build_job.repo_build.access_token.code, 'pull_token': build_job.repo_build.access_token.code,
'push_token': build_job.repo_build.access_token.code, 'push_token': build_job.repo_build.access_token.code,
'tag_names': build_config.get('docker_tags', ['latest']), 'tag_names': build_config.get('docker_tags', ['latest']),
'base_image': base_image_information 'base_image': base_image_information,
}
# If the trigger has a private key, it's using git, thus we should add
# git data to the build args.
if build_job.repo_build.trigger.private_key is not None:
build_arguments['git'] = {
'url': build_config['trigger_metadata']['git_url'],
'sha': build_config['trigger_metadata']['commit_sha'],
'private_key': build_job.repo_build.trigger.private_key,
} }
# Invoke the build. # Invoke the build.

View file

@ -371,8 +371,9 @@ class GithubBuildTrigger(BuildTrigger):
return commit_info return commit_info
# TODO(jzelinskie): update this to support both kinds of triggers
@staticmethod @staticmethod
def _prepare_build(config, repo, commit_sha, build_name, ref): def _prepare_build(config, repo, commit_sha, build_name, ref, git_url):
# Prepare the download and upload URLs # Prepare the download and upload URLs
archive_link = repo.get_archive_link('tarball', commit_sha) archive_link = repo.get_archive_link('tarball', commit_sha)
download_archive = client.get(archive_link, stream=True) download_archive = client.get(archive_link, stream=True)
@ -422,6 +423,7 @@ class GithubBuildTrigger(BuildTrigger):
'commit_sha': commit_sha, 'commit_sha': commit_sha,
'ref': ref, 'ref': ref,
'default_branch': repo.default_branch, 'default_branch': repo.default_branch,
'git_url': git_url,
} }
# add the commit info. # add the commit info.
@ -447,6 +449,7 @@ class GithubBuildTrigger(BuildTrigger):
ref = payload['ref'] ref = payload['ref']
commit_sha = payload['head_commit']['id'] commit_sha = payload['head_commit']['id']
commit_message = payload['head_commit'].get('message', '') commit_message = payload['head_commit'].get('message', '')
git_url = payload['repository']['git_url']
if 'branchtag_regex' in config: if 'branchtag_regex' in config:
try: try:
@ -471,7 +474,7 @@ class GithubBuildTrigger(BuildTrigger):
logger.debug('Github repo: %s', repo) logger.debug('Github repo: %s', repo)
return GithubBuildTrigger._prepare_build(config, repo, commit_sha, return GithubBuildTrigger._prepare_build(config, repo, commit_sha,
short_sha, ref) short_sha, ref, git_url)
def manual_start(self, auth_token, config, run_parameters=None): def manual_start(self, auth_token, config, run_parameters=None):
try: try:
@ -485,8 +488,9 @@ class GithubBuildTrigger(BuildTrigger):
branch_sha = branch.commit.sha branch_sha = branch.commit.sha
short_sha = GithubBuildTrigger.get_display_name(branch_sha) short_sha = GithubBuildTrigger.get_display_name(branch_sha)
ref = 'refs/heads/%s' % (branch_name) ref = 'refs/heads/%s' % (branch_name)
git_url = repo.git_url
return self._prepare_build(config, repo, branch_sha, short_sha, ref) return self._prepare_build(config, repo, branch_sha, short_sha, ref, git_url)
except GithubException as ghe: except GithubException as ghe:
raise TriggerStartException(ghe.data['message']) raise TriggerStartException(ghe.data['message'])