class RCondaTest(CppCondaTest): tags = Extend(['r']) steps = Extend([ r_deps, r_build, r_check ]) image_filter = Filter( name='r', variant='conda', tag='worker' )
class RTest(CppTest): tags = Extend(['r']) steps = Extend([ # runs the C++ tests too r_deps, r_build, r_check ]) image_filter = Filter( name='r', tag='worker', variant=None, # plain linux images, not conda platform=Filter( arch='amd64' ) )
class CrossbowReport(CrossbowBuilder): steps = Extend([ SetPropertyFromCommand( 'crossbow_job_id', extract_fn=lambda stdout, stderr: stdout.strip(), command=Crossbow(args=[ '--github-token', util.Secret('ursabot/github_token'), 'latest-prefix', crossbow_prefix ]), workdir='arrow/dev/tasks'), Crossbow(name='Generate and send nightly report', args=util.FlattenList([ '--github-token', util.Secret('ursabot/github_token'), 'report', '--send', '--poll', '--poll-max-minutes', 120, '--poll-interval-minutes', 15, '--sender-name', 'Crossbow', '--sender-email', '*****@*****.**', '--recipient-email', '*****@*****.**', '--smtp-user', util.Secret('crossbow/smtp_user'), '--smtp-password', util.Secret('crossbow/smtp_password'), util.Property('crossbow_job_id') ]), workdir='arrow/dev/tasks'), Crossbow(name="Update Crossbow's Github page", args=util.FlattenList([ '--github-token', util.Secret('ursabot/github_token'), 'github-page', 'generate', '-n', 20, '--github-push-token', util.Secret('kszucs/github_status_token') ]), workdir='arrow/dev/tasks') ])
class PythonCondaTest(CppCondaTest): tags = Extend(['python']) hostconfig = dict( shm_size='2G', # required for plasma ) properties = Merge( ARROW_PYTHON='ON' ) steps = Extend([ python_install, python_test ]) image_filter = Filter( name=Matching('python*'), variant='conda', tag='worker' )
class CGLibTest(CppTest): tags = Extend(['c-glib']) steps = Extend([ # runs the C++ tests too c_glib_meson, c_glib_compile, c_glib_install, c_glib_install_test_dependencies, c_glib_test, ]) image_filter = Filter( name='c-glib', tag='worker', variant=None, platform=Filter( arch=AnyOf('amd64', 'arm64v8'), distro='ubuntu' ) )
class PythonTest(CppTest): tags = Extend(['python']) hostconfig = dict( shm_size='2G', # required for plasma ) properties = Merge( ARROW_PYTHON='ON' ) steps = Extend([ python_install, python_test ]) image_filter = Filter( name=Matching('python*'), tag='worker', variant=None, # plain linux images, not conda platform=Filter( arch=AnyOf('amd64', 'arm64v8'), distro='ubuntu' ) )
class CppCudaTest(CppTest): tags = Extend(['cuda']) hostconfig = { 'runtime': 'nvidia' } properties = Merge( ARROW_CUDA='ON' ) worker_filter = Filter( tags=Has('cuda') ) image_filter = Filter( name='cpp', tag='worker', variant='cuda', platform=Filter( arch='amd64' ) )
class CrossbowSubmit(CrossbowBuilder): """Submit crossbow jobs This builder is driven via buildbot properties, the `crossbow_args` property is either set by the github hook which parses the github comments like `@ursabot package -g conda` (ror more see commands.py) or by explicitly passing by NightlySchedulers. """ steps = Extend([ Crossbow(args=util.FlattenList([ '--output-file', 'result.yaml', '--github-token', util.Secret('kszucs/github_status_token'), 'submit', '--arrow-remote', arrow_repository, '--job-prefix', crossbow_prefix, util.Property('crossbow_args', []) ]), workdir='arrow/dev/tasks', result_file='result.yaml') ])
class PythonCudaTest(PythonTest): tags = Extend(['cuda']) hostconfig = dict( shm_size='2G', # required for plasma runtime='nvidia', # required for cuda ) properties = Merge( ARROW_CUDA='ON', # also sets PYARROW_WITH_CUDA ) worker_filter = Filter( tags=Has('cuda') ) image_filter = Filter( name=Matching('python*'), tag='worker', variant='cuda', platform=Filter( arch='amd64' ) )
class TestMergeExtend(TestChild): tags = Extend(['a_', 'b_']) env = Merge(e='E_', a='A_', d='D_') properties = {'a': 'A_', 'b': 'B_'}