def release(self, new_version): command = ['hub', 'release', 'create'] if new_version.prerelease: command.append('-p') for artefact in self.artefacts: command.append('-a') command.append(artefact) command.append(str(new_version)) changelog = self.get_changelog() if changelog: with tempfile.NamedTemporaryFile() as fp: fp.write('{}\n\n'.format(new_version).encode('utf-8')) fp.write(changelog.encode('utf-8')) fp.flush() command.append('-F') command.append(fp.name) invoke(command) return invoke(command)
def release(self): gems = glob('*.gem') if len(gems) != 0: raise Exception('Cannot release, found multiple unexpected ' + 'gems ({})'.format(', '.join(gems))) invoke(['gem', 'build', self.gemspec]) invoke(['gem', 'push', glob('*.gem')[0]])
def release(self, new_version): gems = glob('*.gem') if len(gems) != 0: raise Exception('Cannot release, found multiple unexpected ' + 'gems ({})'.format(', '.join(gems))) invoke(['gem', 'build', self.gemspec]) invoke(['gem', 'push', glob('*.gem')[0]])
def release(self): invoke(['pod', 'trunk', 'push', self.podspec])
def git_update(): invoke(['git', 'pull', 'origin', 'master'])
def release(version, dry_run, bump, pull_request, dependents): if pull_request and not cmd_exists('hub'): click.echo('Missing dependency for hub: https://github.com/github/hub.' + ' Please install `hub` and try again.') exit(1) if os.path.exists('.maintain.yml'): with open('.maintain.yml') as fp: config = yaml.load(fp.read()) else: config = {} releaser = AggregateReleaser() if not version and bump: raise MissingParameter(param_hint='version', param_type='argument') elif version in ('major', 'minor', 'patch'): if bump: version = bump_version(releaser.determine_current_version(), version) else: releaser.determine_current_version() else: try: version = Version(version) except ValueError as e: raise click.BadParameter('{} is not a semantic version'.format(version)) if not bump: current_version = releaser.determine_current_version() if current_version != version: click.echo('--no-bump was used, however the supplied version ' + 'is not equal to current version {} != {}'.format(current_version, version)) exit(1) git_check_repository() git_check_branch() git_update() git_check_dirty() if bump: branch = 'master' if pull_request: branch = 'release-{}'.format(version) invoke(['git', 'checkout', '-b', branch]) execute_hooks('bump', 'pre', config) releaser.bump(version) click.echo('Committing and tagging {}'.format(version)) message = 'Release {}'.format(version) invoke(['git', 'commit', '-a', '-m', message]) execute_hooks('bump', 'post', config) if not dry_run: invoke(['git', 'push', 'origin', branch]) if pull_request: invoke(['hub', 'pull-request', '-m', message]) if not dry_run and not pull_request: execute_hooks('publish', 'pre', config) invoke(['git', 'tag', '-a', str(version), '-m', 'Release {}'.format(version)]) invoke(['git', 'push', 'origin', str(version)]) releaser.release() execute_hooks('publish', 'post', config) if dependents and not pull_request and 'dependents' in config: # TODO dry run url = subprocess.check_output('git config --get remote.origin.url', shell=True).strip() map(lambda x: update_dependent(x, version, url), config['dependents'])
def update_dependent(dependent, version, source_url): with temp_directory(): invoke(['git', 'clone', dependent, 'repository', '--depth', '1']) with chdir('repository'): # Check for submodules submodules = git_get_submodules() if not submodules: return # TODO Only git submodules are supported module = next(iter(filter(lambda m: m[1] == source_url, submodules.items())), None) if not module: return invoke(['git', 'submodule', 'update', '--init']) with chdir(module[0]): invoke(['git', 'checkout', str(version)]) # TODO branch name branch = 'update' invoke(['git', 'checkout', '-b', branch]) # TODO commit message package = 'Unknown' message = '[{}] Update to {}'.format(package, version) invoke(['git', 'commit', '-a', '-m', message]) invoke(['git', 'push', 'origin', branch]) invoke(['hub', 'pull-request', '-m', message])
def github_create_pr(message): invoke(['hub', 'pull-request', '-m', message])
def git_check_dirty(): error = 'You need to have a clean check out. You have un-committed local changes.' invoke(['git', 'diff', '--quiet'], error) invoke(['git', 'diff', '--cached'], error)
def release(self, new_version): invoke(['pod', 'trunk', 'push', self.podspec])
def release(self): invoke(["pod", "trunk", "push", self.podspec])
def release(self, new_version): version = self.determine_current_version() invoke(['python', 'setup.py', 'sdist', 'bdist_wheel']) invoke(['twine', 'upload', 'dist/*{}*'.format(version)])
def release(self, new_version): invoke(['npm', 'publish'])
def create_pull_request(self, version): invoke(['hub', 'pull-request', '-m', 'Release {}'.format(version)])
def release(self): invoke(['npm', 'publish'])
def release(self): version = self.determine_current_version() invoke(['python', 'setup.py', 'sdist', 'bdist_wheel']) invoke(['twine', 'upload', 'dist/*{}*'.format(version)])
def git_update(): invoke(['git', 'pull', '--no-rebase'])