Commit Graph

103 Commits

Author SHA1 Message Date
Kousik Kumar
4a31fb1004 [RESTRICT AUTOMERGE] Fix ioutil import in sc-dev branch
Looks like the change from rvc-dev (https://googleplex-android-review.git.corp.google.com/c/platform/build/soong/+/18971604),
when merged into sc-dev removes the ioutil import which is actually
being used.

Test: Ran a build and made sure Soong bootstrap works.

Bug: b/236642556
Change-Id: I2b85b7f4787ec2df5082ebfc969887495763aa3b
2022-06-20 21:34:04 +00:00
Kousik Kumar
14325e74e0 Move env var config loading to be within the config package. am: 2f504db708 am: 4d5f00fed6
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/18971604

Change-Id: Ia6f255e1d244af8301831133095dc5c14b8d1ccd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-20 21:17:29 +00:00
Kousik Kumar
4d5f00fed6 Move env var config loading to be within the config package. am: 2f504db708
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/18971604

Change-Id: Id638a4751a30d681dfe874dc07cea9060e018f85
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-20 20:58:59 +00:00
Kousik Kumar
2f504db708 Move env var config loading to be within the config package.
When the environment variable config file is loaded after config object
is initialized, we  end up loading the USE_RBE variable in the config
file after the code to start reproxy process is run. This causes a
problem when USE_RBE variable itself is set in the config files. To
avoid this, I've moved the config file loading code to be within the
config package, this makes the main.go file cleaner too.

Test:
Ran a build with USE_RBE:true set in the config json file. The build
fails without this change and succeeds with this change.

Bug: b/209486170
Change-Id: Iab3957b64f4b5456a861057d16ad318f4f78e0cb
Merged-In: Iab3957b64f4b5456a861057d16ad318f4f78e0cb
2022-06-17 18:41:41 +00:00
Kousik Kumar
3b9f9fe1eb [conflict] Add additional directories from which env config can be loaded am: ef073be177 am: cc5020c964 am: 8f012ef4bf am: 749dacacda
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/18915321

Change-Id: I70ea14cccca08141bc24c1c2bf8aa52a7836c4dc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-16 19:35:42 +00:00
Kousik Kumar
749dacacda [conflict] Add additional directories from which env config can be loaded am: ef073be177 am: cc5020c964 am: 8f012ef4bf
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/18915321

Change-Id: Ie336521979100a49f540cba860478f3091afd65c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-16 18:22:03 +00:00
Kousik Kumar
8f012ef4bf [conflict] Add additional directories from which env config can be loaded am: ef073be177 am: cc5020c964
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/18881793

Bug: b/236171470
Change-Id: I0d920a60e0eed6774eccf08c11b819682be92365
Merged-In: I9af83687d4eaeee1ffb0f88a750cfeb7c6d2bafb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-16 14:20:25 +00:00
Kousik Kumar
ef073be177 Add additional directories from which env config can be loaded
This is useful for external users to be able to specify their own config files that can be loaded by soong during startup. In addition, we need this for upcoming changes to incorporate an experiments framework in Soong since the config file will be fetched from CDPush and put into the OUT_DIR folder by the config file fetcher binary.

Note: Once this is merged into internal branch, I'll fully get rid of
the vendor/google/ path from Soong in aosp.

Test:
1. Ran a build in aosp with these changes and no config file was loaded.
2. Ran a build in internal master with these changes and the current
config file inside vendor/google was loaded as expected.

Bug: b/214035335,b/235861862
Merged-In: I9af83687d4eaeee1ffb0f88a750cfeb7c6d2bafb
Change-Id: Ica2248c57828e90ec78fccceed6f8e73280360cc
2022-06-14 05:40:30 +00:00
Kousik Kumar
ea62b3d743 Merge "Revert "Revert "Load env variables before c.config()""" into rvc-dev am: 9ecad7478f am: dd28ec5116
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/15778291

Change-Id: I67da3dc3c8c11d25ebc59ab01681029e5682f072
2021-09-09 21:01:43 +00:00
Kousik Kumar
dd28ec5116 Merge "Revert "Revert "Load env variables before c.config()""" into rvc-dev am: 9ecad7478f
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/15778291

Change-Id: I432a96406905bf64a1bad06ec0c902d372802346
2021-09-09 20:44:48 +00:00
Kousik Kumar
008c2aa126 Revert "Revert "Load env variables before c.config()""
This reverts commit 4e88859af0.

Reason for revert: Given https://googleplex-android-review.git.corp.google.com/c/platform/build/soong/+/15747538, we should be able to rollforward with this now.

Bug: b/198045383
Change-Id: I4c069e952d9f77258433b5059f3867293993a64d
2021-09-08 07:37:19 +00:00
Kousik Kumar
e41ee225ae Revert "Load env variables before c.config()" am: 4e88859af0 am: 51c318f403
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/15741350

Change-Id: Ia229ea5263a3456015ad2d446ce9f77f5e7639d0
2021-09-02 00:33:21 +00:00
Kousik Kumar
51c318f403 Revert "Load env variables before c.config()" am: 4e88859af0
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/15741350

Change-Id: I3eb5b3b7175135616eca41935ec472339c83f666
2021-09-02 00:18:44 +00:00
Kousik Kumar
4e88859af0 Revert "Load env variables before c.config()"
This reverts commit 062b011502.

Reason for revert: This change is accidentally opting in a bunch of people into RBE because we aren't respecting USE_RBE variable in rvc-dev branch (possibly missing cherry-pick of some earlier fix).

Merged-In: I416e8da75f84aa2b53995f525cf50501488dc972
Change-Id: Ic678b63b165deb3ac4ec3d3c5cbc166621d8eec3
2021-09-01 22:16:51 +00:00
Kousik Kumar
50c2a1b2a4 Load env variables before c.config() am: 062b011502 am: ef9d91b7ac
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/15723183

Change-Id: I5574eba839d8e186a3fff27b5198ab34ec10e1ce
2021-08-31 17:50:32 +00:00
Kousik Kumar
ef9d91b7ac Load env variables before c.config() am: 062b011502
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/15723183

Change-Id: I6fd005904a174ae685853fcb9303e678ab7a48d0
2021-08-31 17:33:30 +00:00
Kousik Kumar
062b011502 Load env variables before c.config()
If the env variables are loaded after the config object is created, they aren't set in the Environment object inside the config object which causes RBE to not work

Bug: b/198045383
Test: Tested by running a build against rvc-dev branch and ensuring it works.
Change-Id: I509289467df81e5535b4cbbfe4e5eb336c0e4e59
2021-08-31 05:44:29 +00:00
Kousik Kumar
e8d959e5cf resolve merge conflicts of 233c1be0bd to rvc-dev am: 3c12576942 am: 4d645c7791
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/15473760

Change-Id: I5568c2f0fed211356a521bed0e26332e930bd22b
2021-08-06 16:03:42 +00:00
Kousik Kumar
4d645c7791 resolve merge conflicts of 233c1be0bd to rvc-dev am: 3c12576942
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/15473760

Change-Id: I2168fdd669b5ea1b73fce690609be8293fd9069a
2021-08-06 15:45:38 +00:00
Kousik Kumar
3c12576942 resolve merge conflicts of 233c1be0bd to rvc-dev
Bug: b/194679562

Change-Id: Icb42c43c1b4c8018b1402bd508271a0d4a052b14
Merged-In: I416e8da75f84aa2b53995f525cf50501488dc972
2021-08-05 20:16:26 +00:00
Kousik Kumar
9f6fa868c5 Merge "Load RBE related env vars from config files" am: b3a5d18470
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1773209

Bug: b/194679562
Change-Id: Id84167a3ae6ab15c8b74b72b4cc2c179e0da5d0c
Merged-In: I416e8da75f84aa2b53995f525cf50501488dc972
(cherry picked from commit a7ab7c9394)
2021-08-03 13:22:44 -04:00
Anton Hansson
d274ea9196 Various cleanup in soong_ui to aid new feature
- Rename the "BuildX" variables to "RunX"
- Remove redundant comments
- Inline all the "what to do" based on config in build.go
- Inline some constants only used in one place

Bug: 189187214
Test: m nothing
Test: build/soong/build_test.bash
Change-Id: I111a69e642212d7938d4971283545e0d9acbb01a
2021-06-04 12:10:36 +01:00
Lukacs T. Berki
d1e3f1ff08 Embed minibp into soong_ui.
This requires linking Blueprint into soong_ui. It lets us avoid the
complicated dance of Ninja files and shell scripts: now the information
as to how soong_build is built is passed directly to Blueprint using a
struct that contains all the information the command line arguments used
to contain.

The ability to run Blueprint from the command line is kept (for now).

Some variables in bootstrap/command.go needed public accessor functions
because soong_build reads them. This will be disentangled by moving the
flag parsing to soong_build.

The presence of the flag definitions in Blueprint means that soong_ui
now also accepts them. This is not a problem in practice because they
are ignored and because soong_ui itself is hidden behind a few layers of
shell scripts.

Test: Presubmits + the new bootstrap_test.sh .
Change-Id: I6dca478f356f56a8aee1e457d71439272351390b
2021-03-17 08:35:52 +01:00
Lukacs T. Berki
7d613bfe2c Make it possible to debug soong_ui.
This works by setting the SOONG_UI_DELVE= environment variable to the
port on which soong_ui should accept a Delve connection on.

This is achieved by reusing the Delve execution logic between soong_ui
and soong_build.

Test: Manual.
Change-Id: Id2c1d4b6faac1a4a3918c91030ce2239f7daf54f
2021-03-08 08:27:58 +01:00
Rupert Shuttleworth
534f15708f Skip Bazel dist dir migration if not in dist mode or if Bazel dist dir does not exist.
Test: DIST_DIR=/tmp/foo USE_BAZEL=1 m dist and DIST_DIR=/tmp/foo USE_BAZEL=1 m dist installclean
Change-Id: Ibf576d2f3ba506e0f45c30a5dbea69de5c475c9a
2020-12-17 01:01:33 +00:00
Treehugger Robot
8574ae773f Merge "Allow Bazel to write to an external DIST_DIR (outside of OUT_DIR)." 2020-12-11 05:16:32 +00:00
Rupert Shuttleworth
3c9f5ac787 Allow Bazel to write to an external DIST_DIR (outside of OUT_DIR).
Also get Bazel to write real files there (not symlinks) so that the DIST_DIR can be independent.

Test: Manually using e.g. DIST_DIR=/tmp/foo USE_BAZEL=1 m dist
Change-Id: I39d5219500864c9ecc85f356a028e9b5bf2607f4
2020-12-11 01:17:58 +00:00
Patrice Arruda
405640203e Add bazel metrics directory to the list of metrics files to be uploaded.
The contents of the bazel metrics directory (out/bazel_metrics or
<dist dir>/logs/bazel_metrics if dist arg is specified) is added
in the list of files to be uploaded in order to do performance
analysis of bazel builds.

Bug: b/174479728
Test: * m nothing and checked metrics_uploader log file to ensure
        if the metrics is uploaded.
      * USE_BAZEL=1 m nothing and checked if the set of metrics
        files plus the build_bazel_profile.gz is uploaded through
	the metrics_uploader log file.
Change-Id: I394a1b621a06f9acccf154faee6dcd4200fcff4c
2020-12-10 21:48:20 +00:00
Patrice Arruda
83842d7235 Provide an interface for shared paths between Soong and Soong UI.
Code refactoring has been done for logs directory logic code since
the bazel metrics directory depends on the log directory. For builds
that did not specify a dist directory, the log directory is under
out directory. With dist, the logs directory is under <dist dir>/logs.
This matters for Android CI builds where the metrics files are
placed under logs directory. With this change, the bazel metrics
directory and corresponding files will be under <dist dir>/logs
directory for Android CI builds.

Bug: b/174479728
Test: * USE_BAZEL=1 m nothing (bazel_metrics dir in out dir)
      * m nothing (bazel_metrics dir deleted)
      * DIST_DIR=/tmp/build USE_BAZEL=1 m nothing dist (bazel_metrics
        is in /tmp/build/logs directory)

Change-Id: Ic9e1ff49a1964fcaaf801bde2c19f33597ca1db4
2020-12-08 20:24:14 +00:00
Jaewoong Jung
9f98d3f423 Improve soong_ui main.go comments.
And do a minor cleanup while we're there.

Test: TreeHugger
Bug: 173557448
Change-Id: Id1736f82f64c1a0a4b29749f73d3a3724fc501a7
2020-11-17 18:29:58 -08:00
Patrice Arruda
0c1c456643 Define UseBazel in Config
The UseBazel() function will be used in several places to perform
different functionality such as setting up the metrics path.

Bug: b/173028918
Test: m nothing
Change-Id: Ie94073b8f0552ec7528e1cc2f3be74b693dc3135
2020-11-13 11:16:21 -08:00
Patrice Arruda
c5563628f0 [DO NOT MERGE] Capture the build command that executed the build system.
We need to capture the user build command to understand what additional
arguments is passed in to Soong. This data is useful to know which
targets are being executed and have statistics on top build targets
are specified.

Bug: b/169453712
Test: ran "m blueprint_tools", "m nothing", "lunch 1" and checked
      in soong_metrics proto.
Change-Id: I7ab94dcf037211f1abffe6afd012b03ffbf99756
Merged-In: I7ab94dcf037211f1abffe6afd012b03ffbf99756
Merged-In: If9a1443eff6b48cee865ea914370261f5e0cfee6
2020-11-02 12:16:56 -08:00
Patrice Arruda
807a8f9142 [DO NOT MERGE] Capture the build command that executed the build system.
We need to capture the user build command to understand what additional
arguments is passed in to Soong. This data is useful to know which
targets are being executed and have statistics on top build targets
are specified.

Bug: b/169453712
Test: ran "m blueprint_tools", "m nothing", "lunch 1" and checked
      in soong_metrics proto.
Change-Id: I7ab94dcf037211f1abffe6afd012b03ffbf99756
Merged-In: I7ab94dcf037211f1abffe6afd012b03ffbf99756
2020-11-02 09:50:47 -08:00
Patrice Arruda
e92c30dff1 Capture the build command that executed the build system.
We need to capture the user build command to understand what additional
arguments is passed in to Soong. This data is useful to know which
targets are being executed and have statistics on top build targets
are specified.

Bug: b/169453712
Test: ran "m blueprint_tools", "m nothing", "lunch 1" and checked
      in soong_metrics proto.
Change-Id: I7ab94dcf037211f1abffe6afd012b03ffbf99756
2020-10-29 11:01:32 -07:00
Rupert Shuttleworth
680387bf1d Add code to enable USE_BAZEL=1 m functionality in AOSP.
Test: Manually, but builds currently fail due to a recent change to bazel_handler.go.
Change-Id: I9a45a2c73d1755032b11f6b913c03f83a28f63c5
2020-10-26 09:23:24 +00:00
Liz Kammer
0e7993e3d2 Clarify error for soong_ui failing to parse args
Test: m soong_ui and give invalid command line args
Change-Id: I7b4479b392d953bd1d87218184c5ed2143568a07
2020-10-15 11:07:13 -07:00
Kousik Kumar
a0a44a84be Add warning about out-directory usage with RBE builds
Prints the following warning messsage:
WARNING:
Setting OUT_DIR to a path other than out may result in slow RBE builds.
See http://go/android_rbe_out_dir for a workaround.

Bug: b/169676232
Change-Id: Id1ad06c4dc672c24373642e0b624833eb6a0dbcf
2020-10-08 02:50:24 -04:00
Patrice Arruda
68805280f0 resolve merge conflicts of 64d43056ac to rvc-dev
Test: I solemnly swear I tested this conflict resolution.
Bug: b/169423400
Change-Id: I9e4bf3784a1ba5ae49793dbf367347106b997461
Merged-In: I67b229fbf52e913b0c4f5e7932021132ddc0598f
2020-09-30 16:16:23 +00:00
Kousik Kumar
dbe59cdd81 Deprecate USE_GOMA and replace with FORCE_USE_GOMA
Bug: b/163361527
Test: Ran builds with USE_GOMA / FORCE_USE_GOMA flags
Change-Id: I67b229fbf52e913b0c4f5e7932021132ddc0598f
Merged-In: I67b229fbf52e913b0c4f5e7932021132ddc0598f
2020-09-29 16:40:38 +00:00
Kousik Kumar
ec47864ca0 Deprecate USE_GOMA and replace with FORCE_USE_GOMA
Bug: b/163361527
Test: Ran builds with USE_GOMA / FORCE_USE_GOMA flags
Change-Id: I67b229fbf52e913b0c4f5e7932021132ddc0598f
2020-09-21 15:35:57 -04:00
Ramy Medhat
ee50d5b5b0 [DO NOT MERGE] Add Goma deprecation PSA to soong.
Test: build with Goma
Bug: b/166273085
Change-Id: Ie7e146285afd40bc0a1dc17a0b898960f57a118b
Merged-In: Ie7e146285afd40bc0a1dc17a0b898960f57a118b
2020-09-16 17:53:46 +00:00
Ramy Medhat
ee17f8c02e Add Goma deprecation PSA to soong.
Test: build with Goma
Bug: b/166273085
Change-Id: Ie7e146285afd40bc0a1dc17a0b898960f57a118b
Merged-In: Ie7e146285afd40bc0a1dc17a0b898960f57a118b
2020-09-15 20:33:53 +00:00
Patrice Arruda
fbc4e3f9b6 [DO NOT MERGE] Add RBE metrics dump in Soong UI.
From aosp/1329396, the RBE metrics protobuf file is part of the
metrics uploading process. The RBE metrics protobuf file is
generated by running the bootstrap shutdown command. A new function
named DumpRBEMetrics was written in order to generate the RBE metrics
protobuf file before sending to the uploading process.

Bug: b/140638454
Test: * Unit test cases
      * Ran RBE build on my local host and verified the
        metrics protobuf file is created.
      * Ran non-RBE build after RBE build and verified that
        the previous metrics protobuf file was deleted.

Change-Id: I4b8068905cb67c4b8c2d94793917b98974fed707
Merged-In: I4b8068905cb67c4b8c2d94793917b98974fed707
2020-09-15 13:05:11 +00:00
Patrice Arruda
f53a655b75 Use the build start time from Soong main UI for metrics build timestamp.
Currently, the build timestamp saved to the build_date_timestamp
field in the MetricsBase metrics protobuf usually comes from a text
file named build_date.txt. It may not be accurate for metrics purposes.
Instead, use the build start time from Soong main UI for a better
timestamp.

Bug: b/140638454
Test: Ran and checked the build_date_timestamp by running the printproto
      command.
Change-Id: I4d893fbbf9830ba21911e56ae13bc5272be47ae6
Merged-In: I4d893fbbf9830ba21911e56ae13bc5272be47ae6
2020-09-11 14:20:37 +00:00
Patrice Arruda
c3cec87275 Run the metrics uploader in the background.
The metrics uploader was currently running on foreground where it
would copy the metrics files in a separate directory and then forked
into the background for the upload process. As a result, running the
lunch command would take a second longer to run since each metrics
uploader run had an average of half a second.

Bug: 140638454
Test: * Wrote and updated unit test cases.
      * Set ANDROID_ENABLE_METRICS_UPLOAD to point to the latest
        metrics_uploader bash script. Executed the "lunch 1" command
	and measured the running time. Executed "m nothing" command
	and checked that the metrics were uploaded.
      * Ran "lunch 1" and "m nothing" with
        ANDROID_ENABLE_METRICS_UPLOAD=""
      * Removed oauth from metrics_uploader and ran "m nothing" and
        "lunch 1". The oauth Message appeared only to "m nothing"

Change-Id: I13c61e666c8f44613dee291a704cef6a27335188
Merged-In: I13c61e666c8f44613dee291a704cef6a27335188
2020-09-11 14:20:36 +00:00
Patrice Arruda
d519a71f97 Upload build metrics after a build is completed.
Soong now supports the ability to upload metrics to another location
by setting the ANDROID_ENABLE_METRICS_UPLOAD to an uploader that
accepts the upload.proto proto buffer message. When the environment
variable is set, a set of build metrics files (soong_metrics,
rbe_metrics.pb and build_error) is uploaded.

Bug: 140638454
Test: * Wrote unit test cases
      * Setup the uploader, built a succcessful and failed aosp_arm-eng
        target and monitor the uploading of the metrics.
Change-Id: I76a65739c557dc90345e098ca03119a950ece2d2
Merged-In: I76a65739c557dc90345e098ca03119a950ece2d2
2020-09-11 14:20:28 +00:00
Patrice Arruda
dd3020f351 Use the build start time from Soong main UI for metrics build timestamp.
Currently, the build timestamp saved to the build_date_timestamp
field in the MetricsBase metrics protobuf usually comes from a text
file named build_date.txt. It may not be accurate for metrics purposes.
Instead, use the build start time from Soong main UI for a better
timestamp.

Bug: b/140638454
Test: Ran and checked the build_date_timestamp by running the printproto
      command.
Change-Id: I4d893fbbf9830ba21911e56ae13bc5272be47ae6
Merged-In: I4d893fbbf9830ba21911e56ae13bc5272be47ae6
2020-08-31 20:53:16 +00:00
Patrice Arruda
e7836594ec Add RBE metrics dump in Soong UI.
From aosp/1329396, the RBE metrics protobuf file is part of the
metrics uploading process. The RBE metrics protobuf file is
generated by running the bootstrap shutdown command. A new function
named DumpRBEMetrics was written in order to generate the RBE metrics
protobuf file before sending to the uploading process.

Bug: b/140638454
Test: * Unit test cases
      * Ran RBE build on my local host and verified the
        metrics protobuf file is created.
      * Ran non-RBE build after RBE build and verified that
        the previous metrics protobuf file was deleted.

Change-Id: I4b8068905cb67c4b8c2d94793917b98974fed707
Merged-In: I4b8068905cb67c4b8c2d94793917b98974fed707
2020-08-31 20:50:13 +00:00
Patrice Arruda
de44afac93 Run the metrics uploader in the background.
The metrics uploader was currently running on foreground where it
would copy the metrics files in a separate directory and then forked
into the background for the upload process. As a result, running the
lunch command would take a second longer to run since each metrics
uploader run had an average of half a second.

Bug: 140638454
Test: * Wrote and updated unit test cases.
      * Set ANDROID_ENABLE_METRICS_UPLOAD to point to the latest
        metrics_uploader bash script. Executed the "lunch 1" command
	and measured the running time. Executed "m nothing" command
	and checked that the metrics were uploaded.
      * Ran "lunch 1" and "m nothing" with
        ANDROID_ENABLE_METRICS_UPLOAD=""
      * Removed oauth from metrics_uploader and ran "m nothing" and
        "lunch 1". The oauth Message appeared only to "m nothing"

Change-Id: I13c61e666c8f44613dee291a704cef6a27335188
Merged-In: I13c61e666c8f44613dee291a704cef6a27335188
2020-08-31 20:49:37 +00:00
Patrice Arruda
4f7f60b54b Upload build metrics after a build is completed.
Soong now supports the ability to upload metrics to another location
by setting the ANDROID_ENABLE_METRICS_UPLOAD to an uploader that
accepts the upload.proto proto buffer message. When the environment
variable is set, a set of build metrics files (soong_metrics,
rbe_metrics.pb and build_error) is uploaded.

Bug: 140638454
Test: * Wrote unit test cases
      * Setup the uploader, built a succcessful and failed aosp_arm-eng
        target and monitor the uploading of the metrics.
Change-Id: I76a65739c557dc90345e098ca03119a950ece2d2
Merged-In: I76a65739c557dc90345e098ca03119a950ece2d2
2020-08-31 20:49:05 +00:00