Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-3249

Use Gradle to build/release project

Details

    • Improvement
    • Status: Resolved
    • P2
    • Resolution: Fixed
    • None
    • 2.5.0
    • build-system, testing
    • None

    Description

      I have collected data by running several builds against master using Gradle and Maven without using Gradle's support for incremental builds.

      Gradle (mins)
      min: 25.04
      max: 160.14
      median: 45.78
      average: 52.19
      stdev: 30.80

      Maven (mins)
      min: 56.86
      max: 216.55
      median: 87.93
      average: 109.10
      stdev: 48.01

      I excluded a few timeouts (240 mins) that happened during the Maven build from its numbers but we can see conclusively that Gradle is about twice as fast for the build when compared to Maven when run using Jenkins.

      Original dev@ thread: https://lists.apache.org/thread.html/225dddcfc78f39bbb296a0d2bbef1caf37e17677c7e5573f0b6fe253@%3Cdev.beam.apache.org%3E
      The data is available here https://docs.google.com/spreadsheets/d/1MHVjF-xoI49_NJqEQakUgnNIQ7Qbjzu8Y1q_h3dbF1M/edit?usp=sharing

      Attachments

        Issue Links

          1.
          Migrate ValidatesRunner Jenkins PostCommits to Gradle Sub-task Resolved Henning Rohde

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 4h
          2.
          Migrate Performance Tests Jenkins Jobs to use Gradle Sub-task Resolved Unassigned  
          3.
          Update contributors guide to discuss Gradle Sub-task Resolved Daniel Oliveira

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 50m
          4.
          Add Intellij hints to projects containing code generation tasks Sub-task Resolved Kenneth Knowles  
          5.
          Update release process to use Gradle Sub-task Resolved Alan Myrvold

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 13h
          6.
          Add archetype testing/generation to existing GradleBuild PreCommit Sub-task Resolved Yifan Zou

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 3.5h
          7.
          Migrate Python Jenkins PreCommits to Gradle Sub-task Resolved Udi Meiri

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 4h 10m
          8.
          Migrate Go Jenkins PreCommit to Gradle Sub-task Resolved Henning Rohde

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 5h 50m
          9.
          On fresh checkout, failure of ./gradlew build due to no tox Sub-task Resolved Udi Meiri  
          10.
          On fresh checkout, failure of "./gradlew build" for Go due to "Cannot recognized package: common" Sub-task Resolved Henning Rohde  
          11.
          Drop redundant "beam-" from project names in gradle Sub-task Resolved Luke Cwik  
          12.
          Update testing documentation with gradle info Sub-task Resolved Unassigned  
          13.
          Review and update the references of maven to gradle in the website Sub-task Resolved Scott Wegner  
          14.
          Review and update the references of maven to gradle in the source code Sub-task Resolved Scott Wegner

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          15.
          Build Go SDK container with Gradle Sub-task Resolved Henning Rohde

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 20m
          16.
          Build Go SDK examples with gradle Sub-task Resolved Luke Cwik

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 50m
          17.
          Gradle publish task should authenticate when run from jenkins Sub-task Resolved Jean-Baptiste Onofré

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 2h 10m
          18.
          Update release guide to use gradle and not maven Sub-task Resolved Unassigned  
          19.
          Update release documentation for Gradle Sub-task Resolved Pablo Estrada

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 20m
          20.
          Remove job_beam_Release_NightlySnapshot.groovy and add a nightly gradle jenkins job Sub-task Resolved Jean-Baptiste Onofré  
          21.
          Update performance testing framework to use Gradle. Sub-task Resolved Lukasz Gajowy

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 12h 50m
          22.
          Convert existing Java performance tests to use Gradle Sub-task Resolved Lukasz Gajowy  
          23.
          Convert beam_PerformanceTests_Python to use Gradle Sub-task Open Unassigned  
          24.
          Update SDK container images and instructions to use Gradle Sub-task Resolved Henning Rohde

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 50m
          25.
          Use gradle and not maven in sdks/python/container/run_validatescontainer.sh Sub-task Resolved Alan Myrvold

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h
          26.
          Maven pipeline jobs consistently failing Sub-task Resolved Alan Myrvold

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 10m
          27.
          Apache Rat doesn't use .gitignore excludes when used with Apache Ant via Gradle Sub-task Resolved Romain Manni-Bucau

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h
          28.
          Migrate MavenInstall Jenkins PostCommits to Gradle Sub-task Resolved Luke Cwik

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 2h
          29.
          "No such file or directory" in beam_PreCommit_Python_GradleBuild Sub-task Resolved Udi Meiri

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 1h 40m
          30.
          Ensure generated pom don't break consumers Sub-task Resolved Unassigned  
          31.
          Make sure Dataflow ValidatesRunner tests pass in Gradle Sub-task Resolved Scott Wegner

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 7h
          32.
          meta-info/poms missing in snapshots Sub-task Resolved Luke Cwik

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          33.
          Verify that the Build works on MacOS Sub-task Resolved Unassigned

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 10m
          34.
          Validate generated javadocs Sub-task Resolved Scott Wegner

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 0.5h
          35.
          Build times of IO tests with gradle take longer Sub-task Resolved Unassigned  
          36.
          Tune Gradle resource usage on Jenkins Sub-task Resolved Scott Wegner

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 2h 40m
          37.
          Gradle publish -Prelease should create source .zip Sub-task Resolved Unassigned  
          38.
          Sporadic ZipExceptions in tests with gradle and "isRelease" Sub-task Resolved Luke Cwik  
          39.
          Remove all mentions of "mvn" from javadoc Sub-task Open Unassigned  
          40.
          Improve gradle integration with IntelliJ Sub-task Resolved Unassigned

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 20m
          41.
          PostCommits are not running ValidatesRunner on DirectRunner Sub-task Resolved Unassigned  

          Activity

            People

              lcwik Luke Cwik
              lcwik Luke Cwik
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 86h
                  86h