[ 
https://issues.apache.org/jira/browse/BEAM-3942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16419390#comment-16419390
 ] 

Łukasz Gajowy edited comment on BEAM-3942 at 3/29/18 5:05 PM:
--------------------------------------------------------------

Sure, sorry for being so laconic.  

This command runs perfkit with all the command line arguments it needs. After 
that perfkit downloads beam repository, performs the "setup" phase (kubernetes 
and so on) and then, using the above mentioned arguments it, constructs *maven* 
commands to build beam and run the tests. Build is optional but still possible 
- "beamPrebuilt" flag turns it on/off.

If we want to leave this flow as is, we need to modify this perfkit class to 
construct gradle commands instead of maven ones: 
[https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/blob/master/perfkitbenchmarker/beam_benchmark_helper.py]Please
 notice that the code you mentioned is only for running ITs manually. Jenkins 
jobs run Perfkit directly: 
[https://github.com/apache/beam/blob/397688a62b1f9f0f9840a43ed4ad1a59ba77b981/.test-infra/jenkins/common_job_properties.groovy#L311]
 

As for modifying perfkit - I see two ways of doing this: 
 1. Fully drop maven and use gradle instead at once. 
 2. Add logic to perfkit to support both maven and gradle for some time. This 
is in case of obstacles preventing us from migrating to gradle in one day but 
will take more time and energy. 

Also, please note that for both ways, Perfkit needs to "know" what gradle 
command to construct to run the tests. This is why I planned to start with 
submitting PR to beam and then modify perfkit accordingly.

WDYT of all this?


was (Author: łukaszg):
Sure, sorry for being so laconic.  

This command runs perfkit with all the command line arguments it needs. After 
that perfkit downloads beam repository, performs the "setup" phase (kubernetes 
and so on) and then, using the above mentioned arguments it, constructs *maven* 
commands to build beam and run the tests. Build is optional but still possible 
- "beamPrebuilt" flag turns it on/off.

If we want to leave this flow as is, we need to modify this perfkit class to 
construct gradle commands instead of maven ones: 
[https://github.com/GoogleCloudPlatform/PerfKitBenchmarker/blob/master/perfkitbenchmarker/beam_benchmark_helper.py

]Please notice that the code you mentioned is only for running ITs manually. 
Jenkins jobs run Perfkit directly: 
[https://github.com/apache/beam/blob/397688a62b1f9f0f9840a43ed4ad1a59ba77b981/.test-infra/jenkins/common_job_properties.groovy#L311]
 

As for modifying perfkit - I see two ways of doing this: 
1. Fully drop maven and use gradle instead at once. 
2. Add logic to perfkit to support both maven and gradle for some time. This is 
in case of obstacles preventing us from migrating to gradle in one day but will 
take more time and energy. 

Also, please note that for both ways, Perfkit needs to "know" what gradle 
command to construct to run the tests. This is why I planned to start with 
submitting PR to beam and then modify perfkit accordingly.

WDYT of all this?

> Update performance testing framework to use Gradle.
> ---------------------------------------------------
>
>                 Key: BEAM-3942
>                 URL: https://issues.apache.org/jira/browse/BEAM-3942
>             Project: Beam
>          Issue Type: Sub-task
>          Components: testing
>            Reporter: Chamikara Jayalath
>            Assignee: Łukasz Gajowy
>            Priority: Major
>
> This requires performing updates to PerfKitBenchmarker and Beam so that we 
> can execute performance tests using Gradle.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to