Skip to content

Instantly share code, notes, and snippets.

@rfairley
Forked from ignatenkobrain/README.md
Created June 29, 2020 21:00
Show Gist options
  • Save rfairley/dee2d0bb321e0408b6ac76bd403dcad7 to your computer and use it in GitHub Desktop.
Save rfairley/dee2d0bb321e0408b6ac76bd403dcad7 to your computer and use it in GitHub Desktop.
Rust on Side Tags
set release 32
set build (fedpkg verrel)
set pkg (string split -m 2 -r - $build)[1]
set tag (koji add-sidetag f$release-build)

fedpkg clone $pkg
cd $pkg
fedpkg request-branch f$release --no-git-branch

set buildroot (~/Documents/scripts/rust-buildroot.py list-buildroot $build)
set buildroot_pkgs (string split -m 2 -r - $buildroot | grep '^rust-' | sort)
koji add-pkg --owner releng $tag $buildroot_pkgs $pkg --force
koji tag-build $tag $buildroot

echo $buildroot | xargs -P32 -n1 koji wait-repo $tag --build

fedpkg build --target $tag --skip-nvr-check
koji untag-build $tag $buildroot
# Create bodhi update
#!/usr/bin/python3
import sys
import click
import koji as _koji
@click.group()
@click.option('--profile', default='koji', help='Koji profile')
@click.pass_context
def cli(ctx, profile):
koji = _koji.get_profile_module(profile)
session_opts = koji.grab_session_options(koji.config)
session = koji.ClientSession(koji.config.server, session_opts)
ctx.obj = session
@cli.command()
@click.argument('nvr')
@click.pass_obj
def list_buildroot(session, nvr):
build = session.getBuild(nvr, strict=True)
if build['state'] != _koji.BUILD_STATES['COMPLETE']:
click.echo('Build is not in the COMPLETE state')
sys.exit(1)
task = session.listTasks(opts={'method': 'buildArch',
'parent': build['task_id']},
queryOpts={'limit': 1})[0]
buildroot = session.listBuildroots(taskID=task['id'],
queryOpts={'order': '-id',
'limit': 1})[0]
rpms = session.listRPMs(componentBuildrootID=buildroot['id'])
with session.multicall(strict=True) as m:
srpms = [m.listRPMs(buildID=rpm['build_id'],
arches='src',
queryOpts={'limit': 1})
for rpm in rpms
if rpm['name'].startswith('rust-') and rpm['name'].endswith('-devel')]
nvrs = set(data.result[0]['nvr'] for data in srpms)
print('\n'.join(sorted(nvrs)))
if __name__ == '__main__':
cli()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment