Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

## Unreleased

### Features

- Add release and dist to sourcemaps upload command ([#333](https://github.com/getsentry/sentry-dart-plugin/pull/333))
- This enables the uploaded bundle to be associated with the release for informational purposes

### Fixes

- Should not exit program when web build path is not found ([#337](https://github.com/getsentry/sentry-dart-plugin/pull/337))
Expand Down
28 changes: 19 additions & 9 deletions lib/sentry_dart_plugin.dart
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,15 @@ class SentryDartPlugin {
}

final release = _release;
final dist = _dist;

await _executeNewRelease(release);

if (_configuration.uploadSourceMaps) {
if (_configuration.legacyWebSymbolication) {
await _executeCliForLegacySourceMaps(release);
await _executeCliForLegacySourceMaps(release: release, dist: dist);
} else {
await _executeCliForSourceMaps(release);
await _executeCliForSourceMaps(release: release, dist: dist);
}
} else {
Log.info('uploadSourceMaps is disabled.');
Expand Down Expand Up @@ -169,9 +170,9 @@ class SentryDartPlugin {
return result;
}

List<String> _baseCliParams({bool includeRelease = false}) {
List<String> _baseCliParams({bool addReleases = false}) {
final params = <String>[];
if (includeRelease) {
if (addReleases) {
params.add('releases');
}
_addOrgAndProject(params);
Expand All @@ -181,7 +182,7 @@ class SentryDartPlugin {
List<String> _releasesCliParams() {
final params = <String>[];
_setUrlAndTokenAndLog(params);
params.addAll(_baseCliParams(includeRelease: true));
params.addAll(_baseCliParams(addReleases: true));
return params;
}

Expand Down Expand Up @@ -279,12 +280,19 @@ class SentryDartPlugin {
return await _executeAndLog('Failed to inject debug ids', params);
}

Future<void> _uploadSourceMaps() async {
Future<void> _uploadSourceMaps(
{required String release, required String? dist}) async {
List<String> params = [];

_setUrlAndTokenAndLog(params);
params.add('sourcemaps');
params.add('upload');
params.add('--release');
params.add(release);
if (dist != null) {
params.add('--dist');
params.add(dist);
}
_addWait(params);
_addUrlPrefix(params);
params.add(_configuration.webBuildFilesFolder);
Expand Down Expand Up @@ -378,7 +386,8 @@ class SentryDartPlugin {
];
}

Future<void> _executeCliForLegacySourceMaps(String release) async {
Future<void> _executeCliForLegacySourceMaps(
{required String release, required String? dist}) async {
void addExtensionToParams(List<String> exts, List<String> params,
String release, String folder, String? urlPrefix) {
params.add('files');
Expand Down Expand Up @@ -455,13 +464,14 @@ class SentryDartPlugin {
Log.taskCompleted(taskName);
}

Future<void> _executeCliForSourceMaps(String release) async {
Future<void> _executeCliForSourceMaps(
{required String release, required String? dist}) async {
const taskName = 'uploading source maps';
Log.startingTask(taskName);

final debugIdInjectionSucceeded = await _injectDebugIds();
if (debugIdInjectionSucceeded) {
await _uploadSourceMaps();
await _uploadSourceMaps(release: release, dist: dist);
} else {
Log.warn('Skipping source maps upload. Could not inject debug ids.');
}
Expand Down
18 changes: 9 additions & 9 deletions test/plugin_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ void main() {
'$cli $args debug-files upload $orgAndProject --include-sources $buildDir/app/outputs',
'$cli $args releases $orgAndProject new $release',
'$cli sourcemaps inject $buildDir/web/file.js $orgAndProject',
'$cli $args sourcemaps upload $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ ./ --ext dart $orgAndProject',
'$cli $args sourcemaps upload --release $release $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ ./ --ext dart $orgAndProject',
'$cli $args releases $orgAndProject set-commits $release --auto --ignore-missing',
'$cli $args releases $orgAndProject finalize $release'
]);
Expand Down Expand Up @@ -232,7 +232,7 @@ void main() {
expect(commandLog, [
'$cli $args releases $orgAndProject new $release',
'$cli sourcemaps inject build/web/file.js $orgAndProject',
'$cli $args sourcemaps upload $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args sourcemaps upload --release $release $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args releases $orgAndProject set-commits $release --auto',
'$cli $args releases $orgAndProject finalize $release'
]);
Expand All @@ -253,7 +253,7 @@ void main() {
expect(commandLog, [
'$cli $args releases $orgAndProject new $configRelease',
'$cli sourcemaps inject build/web/file.js $orgAndProject',
'$cli $args sourcemaps upload $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args sourcemaps upload --release $configRelease $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args releases $orgAndProject set-commits $configRelease --auto',
'$cli $args releases $orgAndProject finalize $configRelease'
]);
Expand All @@ -276,7 +276,7 @@ void main() {
expect(commandLog, [
'$cli $args releases $orgAndProject new $release',
'$cli sourcemaps inject build/web/file.js $orgAndProject',
'$cli $args sourcemaps upload $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args sourcemaps upload --release $release --dist $build $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args releases $orgAndProject set-commits $release --auto',
'$cli $args releases $orgAndProject finalize $release'
]);
Expand All @@ -298,7 +298,7 @@ void main() {
expect(commandLog, [
'$cli $args releases $orgAndProject new $configRelease',
'$cli sourcemaps inject build/web/file.js $orgAndProject',
'$cli $args sourcemaps upload $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args sourcemaps upload --release $configRelease $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args releases $orgAndProject set-commits $configRelease --auto',
'$cli $args releases $orgAndProject finalize $configRelease'
]);
Expand All @@ -320,7 +320,7 @@ void main() {
expect(commandLog, [
'$cli $args releases $orgAndProject new $release',
'$cli sourcemaps inject build/web/file.js $orgAndProject',
'$cli $args sourcemaps upload $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args sourcemaps upload --release $release --dist $configDist $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args releases $orgAndProject set-commits $release --auto',
'$cli $args releases $orgAndProject finalize $release'
]);
Expand All @@ -345,7 +345,7 @@ void main() {
expect(commandLog, [
'$cli $args releases $orgAndProject new $release',
'$cli sourcemaps inject build/web/file.js $orgAndProject',
'$cli $args sourcemaps upload $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args sourcemaps upload --release $release --dist $configDist $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args releases $orgAndProject set-commits $release --auto',
'$cli $args releases $orgAndProject finalize $release'
]);
Expand All @@ -368,7 +368,7 @@ void main() {
expect(commandLog, [
'$cli $args releases $orgAndProject new $configRelease',
'$cli sourcemaps inject build/web/file.js $orgAndProject',
'$cli $args sourcemaps upload $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args sourcemaps upload --release $configRelease --dist $configDist $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args releases $orgAndProject set-commits $configRelease --auto',
'$cli $args releases $orgAndProject finalize $configRelease'
]);
Expand Down Expand Up @@ -396,7 +396,7 @@ void main() {
expect(commandLog, [
'$cli $args releases $orgAndProject new $configRelease',
'$cli sourcemaps inject build/web/file.js $orgAndProject',
'$cli $args sourcemaps upload --url-prefix ~/app/ $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args sourcemaps upload --release $configRelease --dist $configDist --url-prefix ~/app/ $buildDir/web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject',
'$cli $args releases $orgAndProject set-commits $configRelease --auto',
'$cli $args releases $orgAndProject finalize $configRelease'
]);
Expand Down
Loading