dart-lang / dart_ci

Tools used by Dart's continuous integration (CI) testing that aren't needed by Dart SDK contributors. Mirrored from dart.googlesource.com/dart_ci. Do not land pull requests on Github.
BSD 3-Clause "New" or "Revised" License
18 stars 5 forks source link

symbolize requires `gsutil` but that isn't documented anywhere #162

Open jmagman opened 5 months ago

jmagman commented 5 months ago

gsutil is required to run symbolize on the command line, but that dependency isn't documented and is causing confusion.

https://github.com/dart-lang/dart_ci/blob/510788efa644955fca3baba715ac04200be653ad/github-label-notifier/symbolizer/lib/symbols.dart#L203-L204

➜  Desktop dart pub global run symbolizer:symbolize https://github.com/flutter/flutter/issues/117523\#issue-1507570308 "flutter#135454a arm64 release force ios"

INFO: 2024-03-26 13:06:30.671915: checking for llvm-{symbolizer,readobj,objdump} in $PATH
INFO: 2024-03-26 13:06:30.698415: checking for llvm-{symbolizer,readobj,objdump} in tools/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/
INFO: 2024-03-26 13:06:30.729213: checking for llvm-{symbolizer,readobj,objdump} in /Users/h/Library/Android/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/darwin-x86_64/bin/
INFO: 2024-03-26 13:06:32.494511: downloading /var/folders/2j/3q66vxk13y5cx0ch1dywgx5m0000gn/T/symbols-cache/3316dd8728419ad3534e3f6112aa6291f587078a-ios-release for EngineBuild(engineHash: 3316dd8728419ad3534e3f6112aa6291f587078a, variant: EngineVariant(os: ios, arch: arm64, mode: release))
INFO: 2024-03-26 13:06:32.497015: gsutil cp gs://flutter_infra_release/flutter/3316dd8728419ad3534e3f6112aa6291f587078a/ios-release/Flutter.dSYM.zip /var/folders/2j/3q66vxk13y5cx0ch1dywgx5m0000gn/T/HUil4a/Flutter.dSYM.zip
INFO: 2024-03-26 13:06:32.508693: downloading /var/folders/2j/3q66vxk13y5cx0ch1dywgx5m0000gn/T/symbols-cache/3316dd8728419ad3534e3f6112aa6291f587078a-ios-release for EngineBuild(engineHash: 3316dd8728419ad3534e3f6112aa6291f587078a, variant: EngineVariant(os: ios, arch: arm64, mode: release))
Unhandled exception:
ProcessException: No such file or directory
  Command: gsutil cp gs://flutter_infra_release/flutter/3316dd8728419ad3534e3f6112aa6291f587078a/ios-release/Flutter.dSYM.zip /var/folders/2j/3q66vxk13y5cx0ch1dywgx5m0000gn/T/HUil4a/Flutter.dSYM.zip
#0      _ProcessImpl._start (dart:io-patch/process_patch.dart:402:33)
#1      Process.start (dart:io-patch/process_patch.dart:38:20)
#2      _runNonInteractiveProcess (dart:io-patch/process_patch.dart:579:18)
#3      Process.run (dart:io-patch/process_patch.dart:49:12)
#4      SymbolsCache._run (package:symbolizer/symbols.dart:292:23)
#5      SymbolsCache._copyFromGS (package:symbolizer/symbols.dart:204:12)
#6      SymbolsCache._downloadSymbols (package:symbolizer/symbols.dart:211:11)
#7      SymbolsCache._getImpl (package:symbolizer/symbols.dart:184:23)
<asynchronous suspension>
#8      Symbolizer._symbolizeCrashWith (package:symbolizer/symbolizer.dart:124:26)
<asynchronous suspension>
#9      Symbolizer._symbolizeCrash (package:symbolizer/symbolizer.dart:180:18)
<asynchronous suspension>
#10     Symbolizer._symbolizeImpl (package:symbolizer/symbolizer.dart:75:20)
<asynchronous suspension>
#11     Symbolizer.symbolize (package:symbolizer/symbolizer.dart:41:20)
<asynchronous suspension>
#12     main (file:///Users/h/.pub-cache/git/dart_ci-510788efa644955fca3baba715ac04200be653ad/github-label-notifier/symbolizer/bin/symbolize.dart:122:18)
<asynchronous suspension>

Either change gsutil to something else (can it be curled, or are there additional auth steps needed?) or change the tool to detect gsutil isn't on the PATH and send to instructions for installing it https://cloud.google.com/storage/docs/gsutil_install#install

cc @mraleph