From 9bb7aaf6d3f23f0bcf40380ff4e9e474f77ddd49 Mon Sep 17 00:00:00 2001 From: Josh <46817760+joshedney@users.noreply.github.com> Date: Tue, 29 Apr 2025 10:19:20 +0100 Subject: [PATCH 01/11] v3.0.1 Release (#197) * update tests and bk for multiagent * move unity to isolated queue * update the help messages in the react native commands to reference bundle rather than bundle-path * feat: :label: add type definition --------- Co-authored-by: Ben Wilson --- .buildkite/pipeline.yml | 18 ++-- .buildkite/react-native/android.pipeline.yml | 2 +- .buildkite/react-native/ios.pipeline.yml | 2 +- CHANGELOG.md | 8 ++ bugsnag-cli-wrapper.d.ts | 85 +++++++++++++++++++ features/Unity-Android/unity.feature | 6 +- features/android/android-aab.feature | 18 ++-- features/android/android-ndk.feature | 14 +-- features/android/android-proguard.feature | 8 +- features/breakpad/breakpad.feature | 2 +- features/cli/create-build.feature | 12 +-- features/dart/dart.feature | 6 +- features/js/js-multiple-maps-nested.feature | 2 +- features/js/js-multiple-maps.feature | 2 +- features/js/js-webpack4.feature | 14 +-- features/js/js-webpack5.feature | 14 +-- features/react-native/android.feature | 6 +- features/react-native/ios.feature | 6 +- features/xcode/dsym.feature | 4 +- .../expected_err_and_warn_scenarios.feature | 12 +-- features/xcode/swift_package_manager.feature | 10 +-- features/xcode/xcode-archive.feature | 6 +- features/xcode/xcode-build.feature | 14 +-- install.sh | 2 +- main.go | 2 +- package.json | 6 +- pkg/upload/react-native-android.go | 2 +- pkg/upload/react-native-ios.go | 2 +- 28 files changed, 191 insertions(+), 94 deletions(-) create mode 100644 bugsnag-cli-wrapper.d.ts diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 120a5f20..ff5709ad 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -40,7 +40,7 @@ steps: commands: - bundle install - chmod +x bin/arm64-macos-bugsnag-cli - - bundle exec maze-runner features/cli + - bundle exec maze-runner --port=$((MAZE_RUNNER_PORT)) features/cli plugins: artifacts#v1.5.0: download: @@ -53,7 +53,7 @@ steps: commands: - bundle install - chmod +x bin/arm64-macos-bugsnag-cli - - bundle exec maze-runner features/android + - bundle exec maze-runner --port=$((MAZE_RUNNER_PORT)) features/android env: JAVA_VERSION: 17 plugins: @@ -68,7 +68,7 @@ steps: commands: - bundle install - chmod +x bin/arm64-macos-bugsnag-cli - - bundle exec maze-runner features/dart + - bundle exec maze-runner --port=$((MAZE_RUNNER_PORT)) features/dart env: FLUTTER_BIN: "/opt/flutter/3.19.0/bin/flutter" plugins: @@ -85,7 +85,7 @@ steps: commands: - bundle install - chmod +x bin/arm64-macos-bugsnag-cli - - bundle exec maze-runner features/xcode + - bundle exec maze-runner --port=$((MAZE_RUNNER_PORT)) features/xcode plugins: artifacts#v1.5.0: download: @@ -98,7 +98,7 @@ steps: commands: - chmod +x bin/arm64-macos-bugsnag-cli - bundle install - - bundle exec maze-runner features/js + - bundle exec maze-runner --port=$((MAZE_RUNNER_PORT)) features/js plugins: artifacts#v1.5.0: download: @@ -109,11 +109,13 @@ steps: - label: ":video_game: Unity Android Integration Tests" depends_on: build env: - UNITY_VERSION: 6000.0.36f1 + UNITY_VERSION: 6000.0.47f1 + agents: + queue: macos-14-isolated commands: - chmod +x bin/arm64-macos-bugsnag-cli - bundle install - - bundle exec maze-runner features/unity-android + - bundle exec maze-runner --port=$((MAZE_RUNNER_PORT)) features/unity-android plugins: artifacts#v1.5.0: download: @@ -126,7 +128,7 @@ steps: commands: - chmod +x bin/arm64-macos-bugsnag-cli - bundle install - - bundle exec maze-runner features/breakpad + - bundle exec maze-runner --port=$((MAZE_RUNNER_PORT)) features/breakpad plugins: artifacts#v1.5.0: download: diff --git a/.buildkite/react-native/android.pipeline.yml b/.buildkite/react-native/android.pipeline.yml index b43812ce..6bd49a07 100644 --- a/.buildkite/react-native/android.pipeline.yml +++ b/.buildkite/react-native/android.pipeline.yml @@ -14,7 +14,7 @@ steps: commands: - "chmod +x bin/arm64-macos-bugsnag-cli" - "bundle install" - - "bundle exec maze-runner features/react-native/android.feature" + - "bundle exec maze-runner --port=$((MAZE_RUNNER_PORT)) --document-server-port=$((MAZE_RUNNER_PORT + 1)) features/react-native/android.feature" matrix: - "0.70" - "0.73" diff --git a/.buildkite/react-native/ios.pipeline.yml b/.buildkite/react-native/ios.pipeline.yml index a2489a72..87b324d0 100644 --- a/.buildkite/react-native/ios.pipeline.yml +++ b/.buildkite/react-native/ios.pipeline.yml @@ -14,7 +14,7 @@ steps: commands: - "chmod +x bin/arm64-macos-bugsnag-cli" - "bundle install" - - "bundle exec maze-runner features/react-native/ios.feature" + - "bundle exec maze-runner --port=$((MAZE_RUNNER_PORT)) --document-server-port=$((MAZE_RUNNER_PORT + 1)) features/react-native/ios.feature" matrix: - "0.70" - "0.73" diff --git a/CHANGELOG.md b/CHANGELOG.md index fc204da0..29420a14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [3.0.1] - 2025-04-29 + +### Added +- Add TypeScript definitions to cli wrapper [#196](https://github.com/bugsnag/bugsnag-cli/pull/196) + +### Fixed +- Update the command referenced in the missing bundle error message [#195](https://github.com/bugsnag/bugsnag-cli/pull/195) + ## [3.0.0] - 2025-04-07 This major release includes some breaking changes – please see our [Upgrading Guide](./UPGRADING.md) for full details. diff --git a/bugsnag-cli-wrapper.d.ts b/bugsnag-cli-wrapper.d.ts new file mode 100644 index 00000000..3d83f9d2 --- /dev/null +++ b/bugsnag-cli-wrapper.d.ts @@ -0,0 +1,85 @@ +declare module '@bugsnag/cli' { + interface BugsnagCreateBuildOptions { + apiKey?: string + dryRun?: boolean + logLevel?: string + port?: number + failOnUploadError?: boolean + verbose?: boolean + overwrite?: boolean + retries?: number + timeout?: number + } + + interface BugsnagUploadReactNativeOptions { + bundle?: string + codeBundleId?: string + sourceMap?: string + versionName?: string + androidAppManifest?: string + androidVariant?: string + androidVersionCode?: string + iosBundleVersion?: string + iosPlist?: string + iosScheme?: string + iosXcodeProject?: string + } + + interface BugsnagUploadiOSOptions { + bundle?: string + codeBundleId?: string + sourceMap?: string + versionName?: string + bundleVersion?: string + plist?: string + scheme?: string + xcodeProject?: string + } + + interface BugsnagUploadAndroidOptions { + bundle?: string + codeBundleId?: string + sourceMap?: string + versionName?: string + appManifest?: string + variant?: string + versionCode?: string + } + + interface BugsnagUploadJsOptions { + baseUrl?: string + bundle?: string + bundleUrl?: string + projectRoot?: string + sourceMap?: string + versionName?: string + codeBundleId?: string + } + + /** + * Convert camelCase to kebab-case + */ + export function camelToKebab (str: string): string; + + /** + * Execute a Bugsnag CLI command + */ + export function run (command: string, options?: object, target?: string): Promise; + + /** + * Send build information to Bugsnag + */ + export function CreateBuild (options: BugsnagCreateBuildOptions, target?: string): Promise; + + /** + * Upload sourcemaps to Bugsnag + * Provides nested methods for specific upload types. + */ + export const Upload: { + ReactNative: ((options: BugsnagUploadReactNativeOptions, target?: string) => Promise) & { + Android: (options: BugsnagUploadAndroidOptions, target?: string) => Promise, + iOS: (options: BugsnagUploadiOSOptions, target?: string) => Promise + }, + Js: (options: BugsnagUploadJsOptions, target?: string) => Promise, + } +} diff --git a/features/Unity-Android/unity.feature b/features/Unity-Android/unity.feature index 17c50384..cccb15b2 100644 --- a/features/Unity-Android/unity.feature +++ b/features/Unity-Android/unity.feature @@ -3,7 +3,7 @@ Feature: Unity Android integration tests Given I build the Unity Android example project And I wait for the Unity symbols to generate - When I run bugsnag-cli with upload unity-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite platforms-examples/Unity/ + When I run bugsnag-cli with upload unity-android --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite platforms-examples/Unity/ Then I wait to receive 5 sourcemaps Then the sourcemap is valid for the Android Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -18,7 +18,7 @@ Feature: Unity Android integration tests And I wait for the Unity symbols to generate Given I set the NDK path to the Unity bundled version - When I run bugsnag-cli with upload unity-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite platforms-examples/Unity/ + When I run bugsnag-cli with upload unity-android --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite platforms-examples/Unity/ Then I wait to receive 5 sourcemaps Then the sourcemap is valid for the Android Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -33,7 +33,7 @@ Feature: Unity Android integration tests Given I build the Unity Android example project And I wait for the Unity symbols to generate - When I run bugsnag-cli with upload unity-android --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --aab-path platforms-examples/Unity/UnityExample.aab platforms-examples/Unity/ + When I run bugsnag-cli with upload unity-android --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --aab-path platforms-examples/Unity/UnityExample.aab platforms-examples/Unity/ Then I wait to receive 5 sourcemaps Then the sourcemap is valid for the Android Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/android/android-aab.feature b/features/android/android-aab.feature index 8ce0f501..3ea98915 100644 --- a/features/android/android-aab.feature +++ b/features/android/android-aab.feature @@ -1,7 +1,7 @@ Feature: Android AAB Integration Test Scenario: Uploading Android AAB file - When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/aab/app-release.aab + When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/aab/app-release.aab And I wait to receive 1 sourcemaps Then the sourcemap is valid for the Android Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -11,7 +11,7 @@ Feature: Android AAB Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Uploading Android AAB file with --verbose - When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/aab/app-release.aab --verbose + When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/aab/app-release.aab --verbose And I wait to receive 1 sourcemaps Then the sourcemap is valid for the Android Build API And "f3112c3dbdd73ae5dee677e407af196f101e97f5" should be used as "build ID" @@ -22,7 +22,7 @@ Feature: Android AAB Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Uploading Android AAB file with Dexguard - When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/aab/app-release-dexguard.aab + When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/aab/app-release-dexguard.aab And I wait to receive 5 sourcemaps Then the sourcemap is valid for the Android Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -32,7 +32,7 @@ Feature: Android AAB Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Uploading Android AAB file with Dexguard with --verbose - When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/aab/app-release-dexguard.aab --verbose + When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/aab/app-release-dexguard.aab --verbose And I wait to receive 5 sourcemaps Then the sourcemap is valid for the Android Build API And "fb0d77a7-5df2-4f47-a823-b011f89a2b70" should be used as "build ID" @@ -46,7 +46,7 @@ Feature: Android AAB Integration Test When I make the "features/base-fixtures/android" And I wait for the build to succeed - When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/base-fixtures/android/app/build/outputs/bundle/release/app-release.aab + When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/base-fixtures/android/app/build/outputs/bundle/release/app-release.aab And I wait to receive 5 sourcemaps Then the sourcemap is valid for the Android Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -59,7 +59,7 @@ Feature: Android AAB Integration Test When I make the "features/base-fixtures/android" And I wait for the build to succeed - When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/base-fixtures/android/app/build/outputs/bundle/release/app-release.aab --verbose + When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/base-fixtures/android/app/build/outputs/bundle/release/app-release.aab --verbose And I wait to receive 5 sourcemaps Then the sourcemap is valid for the Android Build API And "f88f420ede59cd6695cea71aa0c7345eccd594cb" should be used as "build ID" @@ -70,7 +70,7 @@ Feature: Android AAB Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Uploading Android AAB file when command is run from project root - When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/ --verbose + When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/ --verbose And I wait to receive 1 sourcemaps Then the sourcemap is valid for the Android Build API And "f3112c3dbdd73ae5dee677e407af196f101e97f5" should be used as "build ID" @@ -81,7 +81,7 @@ Feature: Android AAB Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Uploading Android AAB file when command is run from within app directory - When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/app/ --verbose + When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/app/ --verbose And I wait to receive 1 sourcemaps Then the sourcemap is valid for the Android Build API And "f3112c3dbdd73ae5dee677e407af196f101e97f5" should be used as "build ID" @@ -92,5 +92,5 @@ Feature: Android AAB Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Uploading Android AAB file when more than a single AAB is found - When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/aab/ + When I run bugsnag-cli with upload android-aab --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/aab/ Then I should see the path ambiguous error diff --git a/features/android/android-ndk.feature b/features/android/android-ndk.feature index c9eab2a0..7b5d703a 100644 --- a/features/android/android-ndk.feature +++ b/features/android/android-ndk.feature @@ -1,7 +1,7 @@ Feature: Android NDK Integration Test Scenario: Upload a single Android NDK sourcemap using all CLI flags - When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --application-id="2.0" --app-manifest=features/android/fixtures/app/build/intermediates/merged_manifests/release/AndroidManifest.xml --variant=release --version-code=2 --version-name=2.0 features/android/fixtures/app/build/intermediates/merged_native_libs/release/out/lib/arm64-v8a/libbugsnag-ndk.so + When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --application-id="2.0" --app-manifest=features/android/fixtures/app/build/intermediates/merged_manifests/release/AndroidManifest.xml --variant=release --version-code=2 --version-name=2.0 features/android/fixtures/app/build/intermediates/merged_native_libs/release/out/lib/arm64-v8a/libbugsnag-ndk.so And I wait to receive 1 sourcemaps Then the sourcemap is valid for the NDK Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -12,7 +12,7 @@ Feature: Android NDK Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Upload a single Android NDK sourcemap providing the app-manifest CLI flag - When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/android/fixtures/app/build/intermediates/merged_manifests/release/AndroidManifest.xml features/android/fixtures/app/build/intermediates/merged_native_libs/release/out/lib/arm64-v8a/libbugsnag-ndk.so + When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/android/fixtures/app/build/intermediates/merged_manifests/release/AndroidManifest.xml features/android/fixtures/app/build/intermediates/merged_native_libs/release/out/lib/arm64-v8a/libbugsnag-ndk.so And I wait to receive 1 sourcemaps Then the sourcemap is valid for the NDK Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -23,7 +23,7 @@ Feature: Android NDK Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Upload a single Android NDK sourcemap providing the app-manifest CLI flag - When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/app/build/intermediates/merged_native_libs/release/out/lib/arm64-v8a/libbugsnag-ndk.so + When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/app/build/intermediates/merged_native_libs/release/out/lib/arm64-v8a/libbugsnag-ndk.so And I wait to receive 1 sourcemaps Then the sourcemap is valid for the NDK Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -34,7 +34,7 @@ Feature: Android NDK Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Upload multiple Android NDK sourcemaps when command is run from within app directory - When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/app + When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/app And I wait to receive 16 sourcemaps Then the sourcemap is valid for the NDK Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -45,7 +45,7 @@ Feature: Android NDK Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Upload multiple Android NDK sourcemaps when command is run from within x86 directory - When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/app/build/intermediates/merged_native_libs/release/out/lib/x86 + When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/app/build/intermediates/merged_native_libs/release/out/lib/x86 And I wait to receive 4 sourcemaps Then the sourcemap is valid for the NDK Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -56,7 +56,7 @@ Feature: Android NDK Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Upload multiple Android NDK sourcemaps providing no flags to the CLI - When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/ + When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/ And I wait to receive 16 sourcemaps Then the sourcemap is valid for the NDK Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -71,7 +71,7 @@ Feature: Android NDK Integration Test When I make the "features/base-fixtures/android" And I wait for the build to succeed - When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/base-fixtures/android + When I run bugsnag-cli with upload android-ndk --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/base-fixtures/android And I wait to receive 4 sourcemaps Then the sourcemap is valid for the NDK Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/android/android-proguard.feature b/features/android/android-proguard.feature index b2229e08..9bc9b073 100644 --- a/features/android/android-proguard.feature +++ b/features/android/android-proguard.feature @@ -1,7 +1,7 @@ Feature: Android Proguard Integration Test Scenario: Upload an Android Proguard mapping file using all CLI flags - When I run bugsnag-cli with upload android-proguard --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --application-id="com.exampleApp.android" --app-manifest=features/android/fixtures/app/build/intermediates/merged_manifests/release/AndroidManifest.xml --build-uuid=1234567890abcdefghijklmnopqrstuvwxyz --variant=release --version-code=2 --version-name=2.0 features/android/fixtures/app/build/outputs/mapping/release/mapping.txt + When I run bugsnag-cli with upload android-proguard --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --application-id="com.exampleApp.android" --app-manifest=features/android/fixtures/app/build/intermediates/merged_manifests/release/AndroidManifest.xml --build-uuid=1234567890abcdefghijklmnopqrstuvwxyz --variant=release --version-code=2 --version-name=2.0 features/android/fixtures/app/build/outputs/mapping/release/mapping.txt And I wait to receive 1 sourcemaps Then the sourcemap is valid for the Proguard Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -13,7 +13,7 @@ Feature: Android Proguard Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Upload an Android Proguard mapping file providing the app-manifest CLI flag - When I run bugsnag-cli with upload android-proguard --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/android/fixtures/app/build/intermediates/merged_manifests/release/AndroidManifest.xml features/android/fixtures/app/build/outputs/mapping/release/mapping.txt + When I run bugsnag-cli with upload android-proguard --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --app-manifest=features/android/fixtures/app/build/intermediates/merged_manifests/release/AndroidManifest.xml features/android/fixtures/app/build/outputs/mapping/release/mapping.txt And I wait to receive 1 sourcemaps Then the sourcemap is valid for the Proguard Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -25,7 +25,7 @@ Feature: Android Proguard Integration Test And the sourcemap payload field "overwrite" equals "true" Scenario: Upload an Android Proguard mapping file providing no flags to the CLI - When I run bugsnag-cli with upload android-proguard --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/ + When I run bugsnag-cli with upload android-proguard --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/android/fixtures/ And I wait to receive 1 sourcemaps Then the sourcemap is valid for the Proguard Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -40,7 +40,7 @@ Feature: Android Proguard Integration Test When I make the "features/base-fixtures/android" And I wait for the build to succeed - When I run bugsnag-cli with upload android-proguard --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/base-fixtures/android + When I run bugsnag-cli with upload android-proguard --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/base-fixtures/android And I wait to receive 1 sourcemaps Then the sourcemap is valid for the Proguard Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/breakpad/breakpad.feature b/features/breakpad/breakpad.feature index 3df93b12..271583ae 100644 --- a/features/breakpad/breakpad.feature +++ b/features/breakpad/breakpad.feature @@ -1,7 +1,7 @@ Feature: Breakpad Integration Tests Scenario: Upload a single breakpad .sym using all CLI flags - When I run bugsnag-cli with upload breakpad features/breakpad/fixtures/breakpad-symbols.sym --upload-api-root-url=http://localhost:9339 --project-root="/features/breakpad/fixtures/breakpad-symbols.sym" --debug-file="/features/breakpad/fixtures/breakpad-symbols.sym" --code-file="/features/breakpad/fixtures/breakpad-symbols.sym" --version-name="2" --cpu-arch="x86_64" --os-name="Linux" --debug-identifier="1234567890ABCDEF1234567890ABCDEF" --product-name="test-product" --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite + When I run bugsnag-cli with upload breakpad features/breakpad/fixtures/breakpad-symbols.sym --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --project-root="/features/breakpad/fixtures/breakpad-symbols.sym" --debug-file="/features/breakpad/fixtures/breakpad-symbols.sym" --code-file="/features/breakpad/fixtures/breakpad-symbols.sym" --version-name="2" --cpu-arch="x86_64" --os-name="Linux" --debug-identifier="1234567890ABCDEF1234567890ABCDEF" --product-name="test-product" --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite And I wait to receive 1 sourcemaps Then the sourcemap is valid for the Breakpad Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/cli/create-build.feature b/features/cli/create-build.feature index 9ae5e773..7fb33e8e 100644 --- a/features/cli/create-build.feature +++ b/features/cli/create-build.feature @@ -8,7 +8,7 @@ Feature: Bugsnag CLI create-build behavior Then I should see the missing app version error Scenario: Starting bugsnag-cli create-build on mac with app-version - When I run bugsnag-cli with create-build --build-api-root-url=http://localhost:9339/builds --api-key=1234567890ABCDEF1234567890ABCDEF --version-name=1.2.3 + When I run bugsnag-cli with create-build --build-api-root-url=http://localhost:$MAZE_RUNNER_PORT/builds --api-key=1234567890ABCDEF1234567890ABCDEF --version-name=1.2.3 And I wait to receive 1 builds Then the build is valid for the Builds API And the builds payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" @@ -16,7 +16,7 @@ Feature: Bugsnag CLI create-build behavior And the builds payload field "sourceControl.repository" equals "https://github.com/bugsnag/bugsnag-cli.git" Scenario: Starting bugsnag-cli create-build and passing an AAB file - When I run bugsnag-cli with create-build --build-api-root-url=http://localhost:9339/builds --api-key=1234567890ABCDEF1234567890ABCDEF --android-aab=features/android/fixtures/aab/app-release.aab + When I run bugsnag-cli with create-build --build-api-root-url=http://localhost:$MAZE_RUNNER_PORT/builds --api-key=1234567890ABCDEF1234567890ABCDEF --android-aab=features/android/fixtures/aab/app-release.aab And I wait to receive 1 builds Then the build is valid for the Builds API And the builds payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" @@ -24,7 +24,7 @@ Feature: Bugsnag CLI create-build behavior And the builds payload field "sourceControl.repository" equals "https://github.com/bugsnag/bugsnag-cli.git" Scenario: Starting bugsnag-cli create-build and passing an Android manifest file - When I run bugsnag-cli with create-build --build-api-root-url=http://localhost:9339/builds --app-manifest=features/android/fixtures/app/build/intermediates/merged_manifests/release/AndroidManifest.xml + When I run bugsnag-cli with create-build --build-api-root-url=http://localhost:$MAZE_RUNNER_PORT/builds --app-manifest=features/android/fixtures/app/build/intermediates/merged_manifests/release/AndroidManifest.xml And I wait to receive 1 builds Then the build is valid for the Builds API And the builds payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" @@ -32,14 +32,14 @@ Feature: Bugsnag CLI create-build behavior And the builds payload field "sourceControl.repository" equals "https://github.com/bugsnag/bugsnag-cli.git" Scenario: Starting bugsnag-cli create-build with invalid source control provider - When I run bugsnag-cli with create-build --build-api-root-url=http://localhost:9339/builds --api-key=1234567890ABCDEF1234567890ABCDEF --version-name=1.2.3 --provider=test + When I run bugsnag-cli with create-build --build-api-root-url=http://localhost:$MAZE_RUNNER_PORT/builds --api-key=1234567890ABCDEF1234567890ABCDEF --version-name=1.2.3 --provider=test Then I should see the not an accepted value for the source control provider error Scenario: Starting bugsnag-cli create-build with no source control provider - When I run bugsnag-cli with create-build --build-api-root-url=http://localhost:9339/builds --api-key=1234567890ABCDEF1234567890ABCDEF --version-name=1.2.3 --provider= + When I run bugsnag-cli with create-build --build-api-root-url=http://localhost:$MAZE_RUNNER_PORT/builds --api-key=1234567890ABCDEF1234567890ABCDEF --version-name=1.2.3 --provider= Then I should see the missing source control provider error Scenario: Starting bugsnag-cli create-build and passing an Android manifest file with dry-run and verbose - When I run bugsnag-cli with create-build --build-api-root-url=http://localhost:9339/builds --app-manifest=features/android/fixtures/app/build/intermediates/merged_manifests/release/AndroidManifest.xml --dry-run --verbose + When I run bugsnag-cli with create-build --build-api-root-url=http://localhost:$MAZE_RUNNER_PORT/builds --app-manifest=features/android/fixtures/app/build/intermediates/merged_manifests/release/AndroidManifest.xml --dry-run --verbose Then I should see the build payload And I wait to receive 0 builds diff --git a/features/dart/dart.feature b/features/dart/dart.feature index 755f8338..99657833 100644 --- a/features/dart/dart.feature +++ b/features/dart/dart.feature @@ -1,7 +1,7 @@ Feature: Dart Integration Tests Scenario: Upload a single Android Dart sourcemap using all CLI flags - When I run bugsnag-cli with upload dart --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --version-name=2.0 --version-code=1.0 features/dart/fixtures/app-debug-info/app.android-arm64.symbols + When I run bugsnag-cli with upload dart --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --version-name=2.0 --version-code=1.0 features/dart/fixtures/app-debug-info/app.android-arm64.symbols And I wait to receive 1 sourcemaps Then the sourcemap is valid for the Dart Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -12,7 +12,7 @@ Feature: Dart Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Upload a single iOS Dart sourcemap using all CLI flags - When I run bugsnag-cli with upload dart --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --ios-app-path=features/dart/fixtures/build/ios/iphoneos/Runner.app/Frameworks/App.framework/App --version-name=2.0 --bundle-version=1.0 features/dart/fixtures/app-debug-info/app.ios-arm64.symbols + When I run bugsnag-cli with upload dart --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --ios-app-path=features/dart/fixtures/build/ios/iphoneos/Runner.app/Frameworks/App.framework/App --version-name=2.0 --bundle-version=1.0 features/dart/fixtures/app-debug-info/app.ios-arm64.symbols And I wait to receive 1 sourcemaps Then the sourcemap is valid for the Dart Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -23,7 +23,7 @@ Feature: Dart Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Upload multiple Dart sourcemaps providing no flags to the CLI - When I run bugsnag-cli with upload dart --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/dart/fixtures/app-debug-info + When I run bugsnag-cli with upload dart --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/dart/fixtures/app-debug-info And I wait to receive 4 sourcemaps Then the sourcemap is valid for the Dart Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/js/js-multiple-maps-nested.feature b/features/js/js-multiple-maps-nested.feature index a4b89639..cc3e9734 100644 --- a/features/js/js-multiple-maps-nested.feature +++ b/features/js/js-multiple-maps-nested.feature @@ -2,7 +2,7 @@ Feature: Js integration tests multiple nested source maps @BuildNestedJS Scenario: Searches in the dist folder automatically - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/base-fixtures/js/out/ + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/base-fixtures/js/out/ And I wait to receive 4 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/js/js-multiple-maps.feature b/features/js/js-multiple-maps.feature index c1e6c488..2f59167d 100644 --- a/features/js/js-multiple-maps.feature +++ b/features/js/js-multiple-maps.feature @@ -1,7 +1,7 @@ Feature: Js integration tests multiple source maps Scenario: Searches in the dist folder automatically - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-multiple-maps features/js/fixtures/js-multiple-maps/dist/ + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-multiple-maps features/js/fixtures/js-multiple-maps/dist/ And I wait to receive 2 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/js/js-webpack4.feature b/features/js/js-webpack4.feature index ab958d7d..444af910 100644 --- a/features/js/js-webpack4.feature +++ b/features/js/js-webpack4.feature @@ -1,7 +1,7 @@ Feature: Webpack 4 js Integration Tests Scenario: Upload a single js sourcemap using all CLI flags - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle-url=example.com --version-name=2.3.4 --source-map=features/js/fixtures/js-webpack4/dist/main.js.map --bundle=features/js/fixtures/js-webpack4/dist/main.js --project-root=features/js/fixtures/js-webpack4 features/js/fixtures/js-webpack4/dist + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle-url=example.com --version-name=2.3.4 --source-map=features/js/fixtures/js-webpack4/dist/main.js.map --bundle=features/js/fixtures/js-webpack4/dist/main.js --project-root=features/js/fixtures/js-webpack4 features/js/fixtures/js-webpack4/dist And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -14,7 +14,7 @@ Feature: Webpack 4 js Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Automatically resolves the version number based on the package.json - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-webpack4 features/js/fixtures/js-webpack4/dist + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-webpack4 features/js/fixtures/js-webpack4/dist And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -27,7 +27,7 @@ Feature: Webpack 4 js Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Resolves the path specified as the map - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle-url=example.com --project-root=features/js/fixtures/js-webpack4 features/js/fixtures/js-webpack4/dist/main.js.map + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle-url=example.com --project-root=features/js/fixtures/js-webpack4 features/js/fixtures/js-webpack4/dist/main.js.map And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -40,7 +40,7 @@ Feature: Webpack 4 js Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Searches in the dist folder automatically - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-webpack4 features/js/fixtures/js-webpack4/ + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-webpack4 features/js/fixtures/js-webpack4/ And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -53,7 +53,7 @@ Feature: Webpack 4 js Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Uses the working directory as project root - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/js/fixtures/js-webpack4/dist + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/js/fixtures/js-webpack4/dist And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -66,7 +66,7 @@ Feature: Webpack 4 js Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Base URL correctly appends the path - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-webpack4 features/js/fixtures/js-webpack4/dist + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-webpack4 features/js/fixtures/js-webpack4/dist And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -82,7 +82,7 @@ Feature: Webpack 4 js Integration Tests When I make the "features/base-fixtures/js-webpack4" And I wait for the build to succeed - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/base-fixtures/js-webpack4/dist/ + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/base-fixtures/js-webpack4/dist/ And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/js/js-webpack5.feature b/features/js/js-webpack5.feature index bde1732a..d9cbf6cd 100644 --- a/features/js/js-webpack5.feature +++ b/features/js/js-webpack5.feature @@ -1,7 +1,7 @@ Feature: Webpack 5 js Integration Tests Scenario: Upload a single js sourcemap using all CLI flags - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle-url=example.com --version-name=2.3.4 --source-map=features/js/fixtures/js-webpack5/dist/main.js.map --bundle=features/js/fixtures/js-webpack5/dist/main.js --project-root=features/js/fixtures/js-webpack5 features/js/fixtures/js-webpack5/dist + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle-url=example.com --version-name=2.3.4 --source-map=features/js/fixtures/js-webpack5/dist/main.js.map --bundle=features/js/fixtures/js-webpack5/dist/main.js --project-root=features/js/fixtures/js-webpack5 features/js/fixtures/js-webpack5/dist And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -14,7 +14,7 @@ Feature: Webpack 5 js Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Automatically resolves the version number based on the package.json - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-webpack5 features/js/fixtures/js-webpack5/dist + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-webpack5 features/js/fixtures/js-webpack5/dist And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -27,7 +27,7 @@ Feature: Webpack 5 js Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Resolves the path specified as the map - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle-url=example.com --project-root=features/js/fixtures/js-webpack5 features/js/fixtures/js-webpack5/dist/main.js.map + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle-url=example.com --project-root=features/js/fixtures/js-webpack5 features/js/fixtures/js-webpack5/dist/main.js.map And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -40,7 +40,7 @@ Feature: Webpack 5 js Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Searches in the dist folder automatically - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-webpack5 features/js/fixtures/js-webpack5/ + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-webpack5 features/js/fixtures/js-webpack5/ And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -53,7 +53,7 @@ Feature: Webpack 5 js Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Uses the working directory as project root - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/js/fixtures/js-webpack5/dist + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/js/fixtures/js-webpack5/dist And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -66,7 +66,7 @@ Feature: Webpack 5 js Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Base URL correctly appends the path - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-webpack5 features/js/fixtures/js-webpack5/dist + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com --project-root=features/js/fixtures/js-webpack5 features/js/fixtures/js-webpack5/dist And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -82,7 +82,7 @@ Feature: Webpack 5 js Integration Tests When I make the "features/base-fixtures/js-webpack5" And I wait for the build to succeed - When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/base-fixtures/js-webpack5/dist/ + When I run bugsnag-cli with upload js --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --base-url=example.com features/base-fixtures/js-webpack5/dist/ And I wait to receive 1 sourcemaps Then the sourcemap is valid for the JS Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/react-native/android.feature b/features/react-native/android.feature index 1cde0594..10076a10 100644 --- a/features/react-native/android.feature +++ b/features/react-native/android.feature @@ -6,7 +6,7 @@ @BuildRNAndroid Feature: React Native Android Integration Tests Scenario: Upload a single React Native Android sourcemap using all escape hatches - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --bundle=$BUNDLE_PATH --source-map=$SOURCE_MAP_PATH --app-manifest=$APP_MANIFEST_PATH --version-name=2.0 --variant=release --version-code=2 --overwrite + When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --bundle=$BUNDLE_PATH --source-map=$SOURCE_MAP_PATH --app-manifest=$APP_MANIFEST_PATH --version-name=2.0 --variant=release --version-code=2 --overwrite And I wait to receive 1 sourcemaps Then the sourcemap is valid for the React Native Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -17,7 +17,7 @@ Feature: React Native Android Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Upload a single React Native Android sourcemap, only passing bundle, sourcemap and manifest options - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --bundle=$BUNDLE_PATH --source-map=$SOURCE_MAP_PATH --app-manifest=$APP_MANIFEST_PATH --overwrite features/react-native/fixtures/generated/old-arch/$RN_VERSION + When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --bundle=$BUNDLE_PATH --source-map=$SOURCE_MAP_PATH --app-manifest=$APP_MANIFEST_PATH --overwrite features/react-native/fixtures/generated/old-arch/$RN_VERSION And I wait to receive 1 sourcemaps Then the sourcemap is valid for the React Native Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -28,7 +28,7 @@ Feature: React Native Android Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Upload a single React Native Android sourcemap - When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:9339 --overwrite features/react-native/fixtures/generated/old-arch/$RN_VERSION + When I run bugsnag-cli with upload react-native-android --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --overwrite features/react-native/fixtures/generated/old-arch/$RN_VERSION And I wait to receive 1 sourcemaps Then the sourcemap is valid for the React Native Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/react-native/ios.feature b/features/react-native/ios.feature index 2103b000..70e9b779 100644 --- a/features/react-native/ios.feature +++ b/features/react-native/ios.feature @@ -1,7 +1,7 @@ Feature: React Native iOS Integration Tests @BuildRNiOS Scenario: Upload a single React Native iOS sourcemap - When I run bugsnag-cli with upload react-native-ios --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/react-native/fixtures/generated/old-arch/$RN_VERSION + When I run bugsnag-cli with upload react-native-ios --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite features/react-native/fixtures/generated/old-arch/$RN_VERSION And I wait to receive 1 sourcemaps Then the sourcemap is valid for the React Native Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -13,7 +13,7 @@ Feature: React Native iOS Integration Tests @BuildExportRNiOS Scenario: Upload a single React Native iOS sourcemap using escape hatches - When I run bugsnag-cli with upload react-native-ios --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle=features/react-native/fixtures/generated/old-arch/$RN_VERSION/reactnative.xcarchive/Products/Applications/reactnative.app/main.jsbundle --source-map=features/react-native/fixtures/generated/old-arch/$RN_VERSION/ios/build/sourcemaps/main.jsbundle.map --plist=features/react-native/fixtures/generated/old-arch/$RN_VERSION/reactnative.xcarchive/Products/Applications/reactnative.app/Info.plist --xcode-project=features/react-native/fixtures/generated/old-arch/$RN_VERSION/ios/reactnative.xcodeproj --scheme=reactnative --bundle-version=2 --version-name=2.0 + When I run bugsnag-cli with upload react-native-ios --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle=features/react-native/fixtures/generated/old-arch/$RN_VERSION/reactnative.xcarchive/Products/Applications/reactnative.app/main.jsbundle --source-map=features/react-native/fixtures/generated/old-arch/$RN_VERSION/ios/build/sourcemaps/main.jsbundle.map --plist=features/react-native/fixtures/generated/old-arch/$RN_VERSION/reactnative.xcarchive/Products/Applications/reactnative.app/Info.plist --xcode-project=features/react-native/fixtures/generated/old-arch/$RN_VERSION/ios/reactnative.xcodeproj --scheme=reactnative --bundle-version=2 --version-name=2.0 Then the sourcemap is valid for the React Native Build API Then the sourcemaps Content-Type header is valid multipart form-data And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" @@ -23,7 +23,7 @@ Feature: React Native iOS Integration Tests And the sourcemap payload field "overwrite" equals "true" Scenario: Upload a single React Native iOS sourcemap using escape hatches - When I run bugsnag-cli with upload react-native-ios --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle=features/react-native/fixtures/generated/old-arch/$RN_VERSION/reactnative.xcarchive/Products/Applications/reactnative.app/main.jsbundle --source-map=features/react-native/fixtures/generated/old-arch/$RN_VERSION/ios/build/sourcemaps/main.jsbundle.map --plist=features/react-native/fixtures/generated/old-arch/$RN_VERSION/reactnative.xcarchive/Products/Applications/reactnative.app/Info.plist --xcode-project=features/react-native/fixtures/generated/old-arch/$RN_VERSION/ios/reactnative.xcodeproj --scheme=reactnative + When I run bugsnag-cli with upload react-native-ios --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --bundle=features/react-native/fixtures/generated/old-arch/$RN_VERSION/reactnative.xcarchive/Products/Applications/reactnative.app/main.jsbundle --source-map=features/react-native/fixtures/generated/old-arch/$RN_VERSION/ios/build/sourcemaps/main.jsbundle.map --plist=features/react-native/fixtures/generated/old-arch/$RN_VERSION/reactnative.xcarchive/Products/Applications/reactnative.app/Info.plist --xcode-project=features/react-native/fixtures/generated/old-arch/$RN_VERSION/ios/reactnative.xcodeproj --scheme=reactnative Then the sourcemap is valid for the React Native Build API Then the sourcemaps Content-Type header is valid multipart form-data And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" diff --git a/features/xcode/dsym.feature b/features/xcode/dsym.feature index 4d13cf84..74396891 100644 --- a/features/xcode/dsym.feature +++ b/features/xcode/dsym.feature @@ -1,7 +1,7 @@ Feature: dSYM Integration Tests @CleanAndBuildDsym Scenario: Upload a dsym from an Xcode Build - When I run bugsnag-cli with upload dsym --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/dsym/ + When I run bugsnag-cli with upload dsym --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/dsym/ And I wait to receive 1 sourcemaps Then the sourcemap is valid for the dSYM Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -9,7 +9,7 @@ Feature: dSYM Integration Tests @CleanAndArchiveDsym Scenario: Upload a dsym from an Xcode Archive - When I run bugsnag-cli with upload dsym --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/dsym/ + When I run bugsnag-cli with upload dsym --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/dsym/ And I wait to receive 1 sourcemaps Then the sourcemap is valid for the dSYM Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/xcode/expected_err_and_warn_scenarios.feature b/features/xcode/expected_err_and_warn_scenarios.feature index 7797a3d4..17759a99 100644 --- a/features/xcode/expected_err_and_warn_scenarios.feature +++ b/features/xcode/expected_err_and_warn_scenarios.feature @@ -1,25 +1,25 @@ Feature: dSYM Expected Error and Warning scenario Integration Tests Scenario: If --ignore-empty-dsym is set to true, then the log message returned should be [WARN] - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/path/to/project/root --scheme=test --ignore-empty-dsym=true features/xcode/fixtures/ZeroByteDsym + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/path/to/project/root --scheme=test --ignore-empty-dsym=true features/xcode/fixtures/ZeroByteDsym Then I should see a log level of "[FATAL]" when no dSYM files could be found Scenario: If --ignore-empty-dsym is not set, then the log message returned should be [ERROR] - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/path/to/project/root --scheme=test features/xcode/fixtures/ZeroByteDsym + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/path/to/project/root --scheme=test features/xcode/fixtures/ZeroByteDsym Then I should see a log level of "[FATAL]" when no dSYM files could be found Scenario: If --ignore-missing-dwarf is set to true, then the log message returned should be [WARN] - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/path/to/project/root --scheme=test --ignore-missing-dwarf=true features/xcode/fixtures/MissingDWARFdSYM + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/path/to/project/root --scheme=test --ignore-missing-dwarf=true features/xcode/fixtures/MissingDWARFdSYM Then I should see a log level of "[FATAL]" when no dSYM files could be found Scenario: If --ignore-missing-dwarf is not set, then the log message returned should be [ERROR] - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/path/to/project/root --scheme=test features/xcode/fixtures/MissingDWARFdSYM + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/path/to/project/root --scheme=test features/xcode/fixtures/MissingDWARFdSYM Then I should see a log level of "[FATAL]" when no dSYM files could be found Scenario: If --ignore-missing-dwarf is set to true, then the log message returned should be [WARN] - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/path/to/project/root --scheme=test --ignore-missing-dwarf=true features/xcode/fixtures/MissingDWARFdSYM + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/path/to/project/root --scheme=test --ignore-missing-dwarf=true features/xcode/fixtures/MissingDWARFdSYM Then I should see a log level of "[FATAL]" when no dSYM files could be found Scenario: If --ignore-missing-dwarf is not set, then the log message returned should be [ERROR] - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/path/to/project/root --scheme=test features/xcode/fixtures/MissingDWARFdSYM + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/path/to/project/root --scheme=test features/xcode/fixtures/MissingDWARFdSYM Then I should see a log level of "[FATAL]" when no dSYM files could be found diff --git a/features/xcode/swift_package_manager.feature b/features/xcode/swift_package_manager.feature index dcaaa7c9..049170e2 100644 --- a/features/xcode/swift_package_manager.feature +++ b/features/xcode/swift_package_manager.feature @@ -4,7 +4,7 @@ # When I make the "features/base-fixtures/swift-package-manager" # Then I wait for the build to succeed # -# When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --project-root=/my/project/root/ --plist=features/base-fixtures/swift-package-manager/swift-package-manager/Info.plist --scheme=swift-package-manager features/base-fixtures/swift-package-manager +# When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --overwrite --project-root=/my/project/root/ --plist=features/base-fixtures/swift-package-manager/swift-package-manager/Info.plist --scheme=swift-package-manager features/base-fixtures/swift-package-manager # And I wait to receive 1 sourcemaps # Then the sourcemap is valid for the dSYM Build API # Then the sourcemaps Content-Type header is valid multipart form-data @@ -15,7 +15,7 @@ # When I make the "features/base-fixtures/swift-package-manager" # Then I wait for the build to succeed # -# When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/swift-package-manager +# When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/swift-package-manager # And I wait to receive 1 sourcemaps # Then the sourcemap is valid for the dSYM Build API # Then the sourcemaps Content-Type header is valid multipart form-data @@ -25,7 +25,7 @@ # When I make the "features/base-fixtures/swift-package-manager" # Then I wait for the build to succeed # -# When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/swift-package-manager/swift-package-manager.xcodeproj +# When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/swift-package-manager/swift-package-manager.xcodeproj # And I wait to receive 1 sourcemaps # Then the sourcemap is valid for the dSYM Build API # Then the sourcemaps Content-Type header is valid multipart form-data @@ -35,7 +35,7 @@ # When I make the "features/base-fixtures/swift-package-manager" # Then I wait for the build to succeed # -# When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --scheme=swift-package-manager --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/swift-package-manager +# When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --scheme=swift-package-manager --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/swift-package-manager # And I wait to receive 1 sourcemaps # Then the sourcemap is valid for the dSYM Build API # Then the sourcemaps Content-Type header is valid multipart form-data @@ -45,7 +45,7 @@ # When I make the "features/base-fixtures/swift-package-manager" # Then I wait for the build to succeed # -# When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --plist=features/base-fixtures/swift-package-manager/swift-package-manager/Info.plist features/base-fixtures/swift-package-manager +# When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --plist=features/base-fixtures/swift-package-manager/swift-package-manager/Info.plist features/base-fixtures/swift-package-manager # And I wait to receive 1 sourcemaps # Then the sourcemap is valid for the dSYM Build API # Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/xcode/xcode-archive.feature b/features/xcode/xcode-archive.feature index 36d795f3..4d75add0 100644 --- a/features/xcode/xcode-archive.feature +++ b/features/xcode/xcode-archive.feature @@ -1,6 +1,6 @@ Feature: Xcode Archive Integration Tests Scenario: Uploading an .xcarchive containing commas and special characters - When I run bugsnag-cli with upload xcode-archive --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF "features/xcode/fixtures/bugsnag-example 14-05-2021,,, 11.27éøœåñü#.xcarchive" + When I run bugsnag-cli with upload xcode-archive --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF "features/xcode/fixtures/bugsnag-example 14-05-2021,,, 11.27éøœåñü#.xcarchive" And I wait to receive 2 sourcemaps Then the sourcemap is valid for the dSYM Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -9,7 +9,7 @@ Feature: Xcode Archive Integration Tests Scenario: Archive and upload an .xcarchive When I make the "features/base-fixtures/dsym/archive" Then I wait for the build to succeed - When I run bugsnag-cli with upload xcode-archive --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/dsym/ + When I run bugsnag-cli with upload xcode-archive --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/dsym/ And I wait to receive 1 sourcemaps Then the sourcemap is valid for the dSYM Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -18,7 +18,7 @@ Feature: Xcode Archive Integration Tests Scenario: Archive and export a .xcarchive When I make the "features/base-fixtures/dsym/archive/export" Then I wait for the build to succeed - When I run bugsnag-cli with upload xcode-archive --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/dsym/dsym.xcarchive + When I run bugsnag-cli with upload xcode-archive --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF features/base-fixtures/dsym/dsym.xcarchive And I wait to receive 1 sourcemaps Then the sourcemap is valid for the dSYM Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/features/xcode/xcode-build.feature b/features/xcode/xcode-build.feature index 495c4a04..4965eaef 100644 --- a/features/xcode/xcode-build.feature +++ b/features/xcode/xcode-build.feature @@ -1,42 +1,42 @@ Feature: Xcode Build Integration Tests Scenario: Upload a single dSYM sourcemap using path containing one dSYM - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ features/xcode/fixtures/single-dsym + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ features/xcode/fixtures/single-dsym And I wait to receive 1 sourcemaps Then the sourcemap is valid for the dSYM Build API Then the sourcemaps Content-Type header is valid multipart form-data And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" Scenario: Upload multiple dSYM sourcemaps using path containing multiple dSYMs - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ features/xcode/fixtures/dsyms + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ features/xcode/fixtures/dsyms And I wait to receive 2 sourcemaps Then the sourcemap is valid for the dSYM Build API Then the sourcemaps Content-Type header is valid multipart form-data And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" Scenario: Upload a single dSYM sourcemap using zip file containing one dSYM - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ features/xcode/fixtures/single-dsym.zip + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ features/xcode/fixtures/single-dsym.zip And I wait to receive 1 sourcemaps Then the sourcemap is valid for the dSYM Build API Then the sourcemaps Content-Type header is valid multipart form-data And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" Scenario: Upload multiple dSYM sourcemaps using zip file containing multiple dSYMs - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ features/xcode/fixtures/dsyms.zip + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ features/xcode/fixtures/dsyms.zip And I wait to receive 2 sourcemaps Then the sourcemap is valid for the dSYM Build API Then the sourcemaps Content-Type header is valid multipart form-data And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" Scenario: Uploading a zip file containing directory of dSYM files that was compressed with macOS Archive Utility - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ features/xcode/fixtures/macos-compressed-dsyms.zip + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ features/xcode/fixtures/macos-compressed-dsyms.zip And I wait to receive 2 sourcemaps Then the sourcemap is valid for the dSYM Build API Then the sourcemaps Content-Type header is valid multipart form-data And the sourcemap payload field "apiKey" equals "1234567890ABCDEF1234567890ABCDEF" Scenario: Upload symbols from an AppCenter zip - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ "features/xcode/fixtures/app-center/symbols.zip" + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ "features/xcode/fixtures/app-center/symbols.zip" And I wait to receive 2 sourcemaps Then the sourcemap is valid for the dSYM Build API Then the sourcemaps Content-Type header is valid multipart form-data @@ -46,7 +46,7 @@ Feature: Xcode Build Integration Tests When I make the "features/base-fixtures/dsym" Then I wait for the build to succeed - When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:9339 --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ features/base-fixtures/dsym/ + When I run bugsnag-cli with upload xcode-build --upload-api-root-url=http://localhost:$MAZE_RUNNER_PORT --api-key=1234567890ABCDEF1234567890ABCDEF --project-root=/my/project/root/ features/base-fixtures/dsym/ And I wait to receive 1 sourcemaps Then the sourcemap is valid for the dSYM Build API Then the sourcemaps Content-Type header is valid multipart form-data diff --git a/install.sh b/install.sh index 8416f8c5..b7d6b718 100755 --- a/install.sh +++ b/install.sh @@ -91,7 +91,7 @@ display_help() { EOS } -VERSION="3.0.0" +VERSION="3.0.1" while [[ "$#" -gt 0 ]]; do case "$1" in diff --git a/main.go b/main.go index c751a0b1..117fcbd7 100644 --- a/main.go +++ b/main.go @@ -13,7 +13,7 @@ import ( "github.com/bugsnag/bugsnag-cli/pkg/utils" ) -var package_version = "3.0.0" +var package_version = "3.0.1" func main() { commands := options.CLI{} diff --git a/package.json b/package.json index 6baf84bd..812ac087 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,9 @@ { "name": "@bugsnag/cli", - "version": "3.0.0", + "version": "3.0.1", "description": "BugSnag CLI", "main": "bugsnag-cli-wrapper.js", + "types": "bugsnag-cli-wrapper.d.ts", "bin": { "bugsnag-cli": "bin/bugsnag-cli" }, @@ -26,7 +27,8 @@ "bugsnag-cli-install.js", "bugsnag-cli-wrapper.js", "bin/bugsnag-cli", - "supported-platforms.yml" + "supported-platforms.yml", + "bugsnag-cli-wrapper.d.ts" ], "scripts": { "postinstall": "node bugsnag-cli-install.js" diff --git a/pkg/upload/react-native-android.go b/pkg/upload/react-native-android.go index 4310b6a7..4a81158f 100644 --- a/pkg/upload/react-native-android.go +++ b/pkg/upload/react-native-android.go @@ -53,7 +53,7 @@ func ProcessReactNativeAndroid(options options.CLI, endpoint string, logger log. bundleDirPath = filepath.Join(buildDirPath, "generated", "assets") variantFileFormat = "createBundle%sJsAndAssets" } else { - return fmt.Errorf("unable to find index.android.bundle in your project, please specify the path using --bundle-path") + return fmt.Errorf("unable to find index.android.bundle in your project, please specify the path using --bundle") } if bundleDirPath != "" { diff --git a/pkg/upload/react-native-ios.go b/pkg/upload/react-native-ios.go index a264bbe5..a9c4a667 100644 --- a/pkg/upload/react-native-ios.go +++ b/pkg/upload/react-native-ios.go @@ -132,7 +132,7 @@ func ProcessReactNativeIos(options options.CLI, endpoint string, logger log.Logg // Check that we now have a bundle path if iosOptions.ReactNative.Bundle == "" { - return fmt.Errorf("Could not find a bundle file, please specify the path by using --bundle-path") + return fmt.Errorf("Could not find a bundle file, please specify the path by using --bundle") } // Check that the source map file exists and error out if it doesn't From 09bf75bc2d11aabfc552894e65dac37e257c7741 Mon Sep 17 00:00:00 2001 From: Josh Edney Date: Fri, 9 May 2025 09:15:42 +0100 Subject: [PATCH 02/11] add support for arm64 linux platform --- CHANGELOG.md | 4 ++++ js/supported-platforms.yml | 5 +++++ makefile | 1 + 3 files changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b91fba1c..82188d7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## [unreleased] +### Added + +- Add support for Linux ARM platforms []() + ### Changed - Convert the NPM package to TypeScript [#199](https://github.com/bugsnag/bugsnag-cli/pull/199) diff --git a/js/supported-platforms.yml b/js/supported-platforms.yml index 7e1375e1..5069bd2e 100644 --- a/js/supported-platforms.yml +++ b/js/supported-platforms.yml @@ -23,6 +23,11 @@ ARTIFACT_NAME: 'x86_64-linux-bugsnag-cli' BINARY_NAME: 'bugsnag-cli' +- TYPE: 'Linux' + ARCHITECTURE: 'arm64' + ARTIFACT_NAME: 'arm64-linux-bugsnag-cli' + BINARY_NAME: 'bugsnag-cli' + - TYPE: 'Linux' ARCHITECTURE: 'i386' ARTIFACT_NAME: 'i386-linux-bugsnag-cli' diff --git a/makefile b/makefile index f680a823..32c7e8e9 100644 --- a/makefile +++ b/makefile @@ -30,6 +30,7 @@ build-windows: .PHONY: build-linux build-linux: [ -d bin ] || mkdir -p bin + GOOS=linux GOARCH=arm64 go build -ldflags '-s' -o bin/arm64-linux-bugsnag-cli main.go GOOS=linux GOARCH=amd64 go build -ldflags '-s' -o bin/x86_64-linux-bugsnag-cli main.go GOOS=linux GOARCH=386 go build -ldflags '-s' -o bin/i386-linux-bugsnag-cli main.go From 9aed790709ce46fa772f3b95222aa68605007a17 Mon Sep 17 00:00:00 2001 From: Josh Edney Date: Sat, 10 May 2025 19:33:45 +0100 Subject: [PATCH 03/11] do not use NPX to call CLI in the wrapper --- CHANGELOG.md | 4 ++++ js/src/bugsnag-cli-wrapper.ts | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b91fba1c..612a1f32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## [unreleased] +### Fixed + +- Call the CLI directly rather than using NPX in the JS CLI wrapper []() + ### Changed - Convert the NPM package to TypeScript [#199](https://github.com/bugsnag/bugsnag-cli/pull/199) diff --git a/js/src/bugsnag-cli-wrapper.ts b/js/src/bugsnag-cli-wrapper.ts index d85b16a8..a53a8e43 100644 --- a/js/src/bugsnag-cli-wrapper.ts +++ b/js/src/bugsnag-cli-wrapper.ts @@ -1,4 +1,5 @@ import { exec } from 'child_process' +import * as path from "path"; interface BaseOptions { apiKey?: string @@ -99,7 +100,8 @@ class BugsnagCLI { .join(' ') const positionalArg = target ? `"${target}"` : '' - const cliCommand = `npx bugsnag-cli ${command} ${kebabCaseOptions} ${positionalArg}`.trim() + const binPath = path.resolve(__dirname, 'bin/bugsnag-cli') + const cliCommand = `${binPath} ${command} ${kebabCaseOptions} ${positionalArg}`.trim() // Execute the command exec(cliCommand, (error, stdout, stderr) => { From a1116e757a9871b5ac5e4923a3b751495dc59e07 Mon Sep 17 00:00:00 2001 From: Josh Edney Date: Sat, 10 May 2025 19:37:18 +0100 Subject: [PATCH 04/11] update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 612a1f32..837eaf08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### Fixed -- Call the CLI directly rather than using NPX in the JS CLI wrapper []() +- Call the CLI directly rather than using NPX in the JS CLI wrapper [#201](https://github.com/bugsnag/bugsnag-cli/pull/201) ### Changed From 502edd3977ea5e5c438ee47fa72770fc21e6828d Mon Sep 17 00:00:00 2001 From: Josh Edney Date: Sat, 10 May 2025 19:39:11 +0100 Subject: [PATCH 05/11] update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 82188d7b..5d7b9fc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### Added -- Add support for Linux ARM platforms []() +- Add support for Linux ARM platforms [#202](https://github.com/bugsnag/bugsnag-cli/pull/202) ### Changed From 06642c57119e338185ec393a6d485ae45e8d453e Mon Sep 17 00:00:00 2001 From: Josh Edney Date: Mon, 12 May 2025 09:06:33 +0100 Subject: [PATCH 06/11] release 3.1.0 branch --- CHANGELOG.md | 2 +- install.sh | 2 +- js/package.json | 2 +- main.go | 2 +- scripts/bump-version.sh | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b91fba1c..dda4a86f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [unreleased] +## [3.1.0] - 2025-05-12 ### Changed diff --git a/install.sh b/install.sh index b7d6b718..aff2de23 100755 --- a/install.sh +++ b/install.sh @@ -91,7 +91,7 @@ display_help() { EOS } -VERSION="3.0.1" +VERSION="3.1.0" while [[ "$#" -gt 0 ]]; do case "$1" in diff --git a/js/package.json b/js/package.json index 33d39b1b..add7e86e 100644 --- a/js/package.json +++ b/js/package.json @@ -1,6 +1,6 @@ { "name": "@bugsnag/cli", - "version": "3.0.1", + "version": "3.1.0", "description": "BugSnag CLI", "main": "dist/bugsnag-cli-wrapper.js", "types": "dist/bugsnag-cli-wrapper.d.ts", diff --git a/main.go b/main.go index 117fcbd7..1d5535dc 100644 --- a/main.go +++ b/main.go @@ -13,7 +13,7 @@ import ( "github.com/bugsnag/bugsnag-cli/pkg/utils" ) -var package_version = "3.0.1" +var package_version = "3.1.0" func main() { commands := options.CLI{} diff --git a/scripts/bump-version.sh b/scripts/bump-version.sh index 50bf66c2..cf1c86b6 100755 --- a/scripts/bump-version.sh +++ b/scripts/bump-version.sh @@ -14,5 +14,5 @@ fi echo Bumping the version number to $VERSION sed -i '' "s/package_version = \".*\"/package_version = \"$VERSION\"/" main.go sed -i '' "s/\"version\": \".*\"/\"version\": \"$VERSION\"/" js/package.json -sed -i '' "s/## \[Unreleased\]/## \[$VERSION\] - $(date '+%Y-%m-%d')/" CHANGELOG.md +sed -i '' "s/## \[unreleased\]/## \[$VERSION\] - $(date '+%Y-%m-%d')/" CHANGELOG.md sed -i '' "s/VERSION=\".*\"/VERSION=\"$VERSION\"/" install.sh From 6d3bd80bdb7950bb0da6a379725f6f1315395a51 Mon Sep 17 00:00:00 2001 From: Josh Edney Date: Mon, 12 May 2025 12:08:58 +0100 Subject: [PATCH 07/11] move types to its own file - update path to cli binary in wrapper --- js/package.json | 2 +- js/src/bugsnag-cli-wrapper.ts | 75 ++--------------------------------- js/src/types.ts | 67 +++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 72 deletions(-) create mode 100644 js/src/types.ts diff --git a/js/package.json b/js/package.json index 33d39b1b..75fbe1f0 100644 --- a/js/package.json +++ b/js/package.json @@ -33,7 +33,7 @@ "build": "tsc", "postinstall": "node postinstall.js", "prepack": "npm run prepublish", - "prepublish": "cp bin/bugsnag-cli-placeholder bin/bugsnag-cli" + "prepublish": "npm run build && cp bin/bugsnag-cli-placeholder bin/bugsnag-cli" }, "devDependencies": { "@types/node": "^22.15.3", diff --git a/js/src/bugsnag-cli-wrapper.ts b/js/src/bugsnag-cli-wrapper.ts index a53a8e43..996be1cf 100644 --- a/js/src/bugsnag-cli-wrapper.ts +++ b/js/src/bugsnag-cli-wrapper.ts @@ -1,73 +1,6 @@ import { exec } from 'child_process' -import * as path from "path"; - -interface BaseOptions { - apiKey?: string - dryRun?: boolean - logLevel?: string - port?: number - failOnUploadError?: boolean - verbose?: boolean - overwrite?: boolean - retries?: number - timeout?: number -} - -export interface BugsnagCreateBuildOptions extends BaseOptions { - autoAssignRelease?: boolean - buildApiRootUrl?: string - builderName?: string - metadata?: object - provider?: string - releaseStage?: string - repository?: string - revision?: string - versionName?: string - androidAab?: string - appManifest?: string - versionCode?: string - bundleVersion?: string -} - -interface UploadOptions extends BaseOptions { - uploadApiRootUrl?: string - projectRoot?: string - dev?: boolean - bundle?: string - versionName?: string - sourceMap?: string - codeBundleId?: string -} - -export interface BugsnagUploadReactNativeOptions extends UploadOptions { - androidAppManifest?: string - androidVariant?: string - androidVersionCode?: string - iosBundleVersion?: string - iosPlist?: string - iosScheme?: string - iosXcodeProject?: string -} - -export interface BugsnagUploadiOSOptions extends UploadOptions { - sourceMap?: string - bundleVersion?: string - plist?: string - scheme?: string - xcodeProject?: string -} - -export interface BugsnagUploadAndroidOptions extends UploadOptions { - appManifest?: string - variant?: string - versionCode?: string -} - -export interface BugsnagUploadJsOptions extends UploadOptions { - baseUrl?: string - bundleUrl?: string - projectRoot?: string -} +import { BugsnagCreateBuildOptions, BugsnagUploadiOSOptions, BugsnagUploadJsOptions, BugsnagUploadAndroidOptions, BugsnagUploadReactNativeOptions } from './types' +import * as path from "path" /** * Wrapper for Bugsnag CLI @@ -100,7 +33,7 @@ class BugsnagCLI { .join(' ') const positionalArg = target ? `"${target}"` : '' - const binPath = path.resolve(__dirname, 'bin/bugsnag-cli') + const binPath = path.resolve(__dirname, path.join('..','bin','bugsnag-cli')) const cliCommand = `${binPath} ${command} ${kebabCaseOptions} ${positionalArg}`.trim() // Execute the command @@ -158,4 +91,4 @@ class BugsnagCLI { } -export default BugsnagCLI +export = BugsnagCLI diff --git a/js/src/types.ts b/js/src/types.ts new file mode 100644 index 00000000..cadab372 --- /dev/null +++ b/js/src/types.ts @@ -0,0 +1,67 @@ +interface BaseOptions { + apiKey?: string + dryRun?: boolean + logLevel?: string + port?: number + failOnUploadError?: boolean + verbose?: boolean + overwrite?: boolean + retries?: number + timeout?: number +} + +export interface BugsnagCreateBuildOptions extends BaseOptions { + autoAssignRelease?: boolean + buildApiRootUrl?: string + builderName?: string + metadata?: object + provider?: string + releaseStage?: string + repository?: string + revision?: string + versionName?: string + androidAab?: string + appManifest?: string + versionCode?: string + bundleVersion?: string +} + +interface UploadOptions extends BaseOptions { + uploadApiRootUrl?: string + projectRoot?: string + dev?: boolean + bundle?: string + versionName?: string + sourceMap?: string + codeBundleId?: string +} + +export interface BugsnagUploadReactNativeOptions extends UploadOptions { + androidAppManifest?: string + androidVariant?: string + androidVersionCode?: string + iosBundleVersion?: string + iosPlist?: string + iosScheme?: string + iosXcodeProject?: string +} + +export interface BugsnagUploadiOSOptions extends UploadOptions { + sourceMap?: string + bundleVersion?: string + plist?: string + scheme?: string + xcodeProject?: string +} + +export interface BugsnagUploadAndroidOptions extends UploadOptions { + appManifest?: string + variant?: string + versionCode?: string +} + +export interface BugsnagUploadJsOptions extends UploadOptions { + baseUrl?: string + bundleUrl?: string + projectRoot?: string +} \ No newline at end of file From d38b401281e4451e31a91519b21674e56ef50f6e Mon Sep 17 00:00:00 2001 From: Josh Edney Date: Mon, 12 May 2025 12:53:56 +0100 Subject: [PATCH 08/11] seperated arguments into an array for execFile in the CLI wrapper --- js/bugsnag-cli-3.0.1.tgz | Bin 0 -> 3796 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 js/bugsnag-cli-3.0.1.tgz diff --git a/js/bugsnag-cli-3.0.1.tgz b/js/bugsnag-cli-3.0.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..b0457401e9225e220d60ac2abafa5184d975624e GIT binary patch literal 3796 zcmV;_4lD5=iwFP!000006YU#+SKByp|K?MuS>DEO6DOfSd$4R5XnWgkTlxy!UXQZi z*h-?}SU$@R<=A}pn~`K&cAP+4mcG43udhj@(frcPXhsr|>z%qo+Uc{f(@%#Ybcby( zVBcM5>vp^AtE;50A6swrKKbtc+IqLwTVL-2T(`H7*i-%TL1z3As;~mOLH`9#ALXL#sjKn8&0|4C^2O?#Ab2UmU%K^g?-4SVTZi+I}>v`G8E&qQJdfc9DJMiGsjkK(IoEcE|gcNKlU?EkB) z_j|Yge-o{d3Q9y0GcRduE=}B+93OizbrZV7LZ5|0vPG<9#02@_2ZEnYW!xrz{6Va} z{zvL1jv674h&4zNXVcjPo=sR2_O5S0|7N94{JSf}D8 z_tSuq4cYCS#Vm3A@Ec~x4hVe%HcVsev@?cD#>@qwVLGOAbb};uN?QcTY>-@Bm_lNj zq;W{bho?uIWJ;!ryQ%zNi=(8@#6cyUuCyc-kY#EEdta$Ret5ca1V1GcfYHttSI|VM z;4vMzX^_;cZx!SUOFYRqn=4<#SI8QzS}ji8AcY?jGR+iFi=H3mcu=|t!e)}Oam3?f zAKbY{reaV@lVK-Th8mIZv+!4XE?|B^y)Xh|jMtjwD|buqS3-UTx3lqih075^N2dIJz%SDeCWnbK*M1&Iw~w7YuYN^xagi1 zU-hUK5ZKm6t3LE-A=a4treMe_bfLcC!|*dZcLwek#8AqZ3T1s41{WEgJ6j}#?7=pb zvXwK3#9M?xPj?eOek7+_YWQ{Uo>JWDAv*#zTZP@()yQTk7Fx&~Xb>jY1t+s!V1nB- zic^ER(x$crFqlUr#2c}|KZYg5r0BQ@Y{&FJDT}GqC=E688IhZe0L-*nE1!dd4fN;E z-MdTVE_tUmYN@InwSkk}7tdg*v*ZP?5LqvD>LrsivE3!RJe+_f5f4l^*mYquNH{sA zeYfBC;FkvL$WPcQ6Xq$<1O6)lS+I4OhM=_py-rM{!1buru@2q#f4l8}9NE_4cKhE) zc4yck&E;Nud8KJP34g)QXpE#S+l-V3lTSWTFNL7vngSA!kH>E4*RdF^B3J1)vKYeqU)1(d-)<`W_mJ9Z#vUM1JL9Q8+S}L zK8xtq@`XfkHR>8gvsnh7)~v{Y1qqF<9mP})z(>wPt4W#_HLDeZ^6Iq;0qE?GwnOXq z*k^GF>(o;H3Wwt~!JS}={3tT`rd^90%pYy*&~Y5?A&!UwmRJqafT#-HRZA?5EBA50 zBFC0}G)o{W8<9+fJ~&I}$mlF3_tnknwyNRMp)ltugRR8UYH3LsTEvo-X$ySb=V>B8 zp=XZiqtQtCdG?{SBSBsQVW^2fODDUENiuMO1Al`oUu0`@kAOnpf8<521S)9yAv_`X zY6)OFd4l*6jU?oZ6{X8&Eng@Zwc6{f6`KlEmMKGx7tiskd0wMTuSEY+q*DW8Ixnd2 zQ_yQag~f(^2R5&LFf#WRePmJqHd_FgPf*ztYDF;v7Z<;E(XiJfr z`L>gBHYc8HZ1V6V^f0DrHs{%?n&5y3g_$5W1nN zK|QT8nQ4~fyp00x`b6+F_9$$3qGTs`QE3wfU>h zy+b%MKQfk3Q`pi>zoD*|yaJn>KvkkQV#uY~FtipK9#~S^5w=5#vBo-D7#_2d z%phJ0lSab5w+|)aS2NOPT+}g>)7cLFm^1%cXt@g4TzXUe`CNP{xsUb2Kt4W}nLO+z zm`{t6^KSmF4=A(qzle)OpWt4{kzc7TKL1~Rus(DCx3bb*yFLHAiKh0nfiSAl=0G%U zU5Q>`Eb`?E+0+Dq0*|_5159mx?_!qFeK}T!H&E*0HXp*@`5-Sb!i!n&w_m<6htAz` zV4##n{9Hi(V8A#XJpdNXp)y#~;3ADM3{d}d;3k-Ph+TQ=hsQnwvTfJLd~^Ri^eh>W zie%f!z?(Uic9fxU&XFk<#hPg{c-UN8KorQKR8Hi^kd@41s!*|_3uQGIEa5R0do&i9 zGficskn12LIf95AP?>V#iP%^SjZ`N~*5y_#$CRup?}kVTDSyv~9atla>6lOGKUwlR zrUUi~HirFl0ACO@3o%nDa0fIg&UfTsaT@UZkR>1Pby^t8_1TgJR9_0n4-SAXmmrO! zmVz?~@|n(F(gdtEagnKttcl$B@f1lo_|3A7AvcDqBY{0WjWr1N0EmQ&iuNfK6X3JIq3!JmvZ@& zpGiDsarHU1?&r zWjc5S_>T6if`k(>2t5j?Axm97mW*P4CJR?(-zQJy83YzSnOqLphq5>oc%UF@2>Ek* zQmZD=u{VN5Sn9aoy+ykG!P=T#QfGFI(^O`ZQ>@(X-_eUbH3~nwVmiep(^Okgh6^tj z)kA^}NZSDMz^hXTy6<(6{V-tBN=*x!h9fH!Z8!MV%ClBe!wjMom3Il}bF* zPD}&p3Mx7o>z&E+h2DIpo#l%vf8~$`K5C-h%Qc@llT0n@JgGG!xwG@^)%KhB5-*ta zJZHCZNm?^h%MUV2_y4LgzV7t@()T~TwQBy~d$6){oB!WLE8qXu-`?t~xkVbq#h$#z z)t9z9H2=K|>Az^p>wlwCx^5ba{lE8Mb!Eo?*Vb2NpakQ-E^ASqSMniH7Y=6xp8hVTxGT=!JBK&>DdEj&lVgtxl5$sT}SY?T{=5gV(@8vVd ztar{i3lch#gp@4`(>Pe*BTI?!YH;HSzH=q@^dhhs2!;|W8sk#}f?Z12CXnti;M8pv z)D&JsD)P4Fp~i>@J`@vk&DE!q$F)lSS$awb*;cw_VitVBO0uQuL6zA!B>{^#jjE zeZRg!svk6Ny0UjKQ}uGD>8Ns~d8LO=KJ@}OrsPH*JZ%tlo?~ZUHmgLw=D|{iG{4Du zv|-$VJu-;vo8li;$4@g{EWR{VFkf5?ibZ|`Bhd8;}9xrQCT+!pWu_j~xa9@W49T6=K2|KCJoVM5~pq^4xYczddXs~fRj z>G`AbF6YPRZ_*Gt^@B^*8}Q)^I-x-Y7@Zut!gSoH`rSFcq}vNsSd-_$RaCG$_qm|e zZVvtO+`KvvQ~5l$LMCBj%2Shg9&`+m=S49>KP3<>MV(U8gm24-KyTEkaFrh!V7DXo zhV$fYT-Asir7`}cKxJgCk9eV*%VW6B>_Qed=(qx{kEHh#aNe1rtmd5=m@us7E8V)r zuVG2Q*x7db)qyB_>4t0oIYT|NT_{v$B*(kD-_*DGwe59f|6hUy^Q~)y++SGqKCcxG1g2T>Wc+-`tqF;k?1Q zYs9$NnX^oK_%+nLRkYB(?~Uk;s-XX0sFv4iIX*)xMaH&J8}rs;o~cROs1ZQaasTPd zSTCo8ix+dg7u7Cby>DH{P@X$3MkymxFoD=+$o^QRe-L@;WEdQHx%62U@ zE;;{SUw<%j{?lE(&HrwswFy4f*&xk#EcE%AXo7#6FLPkz)B39FHSV;r`{DZW`fB@3 z&1;*7gZ4jb K?kbl6N&o=tL}#D? literal 0 HcmV?d00001 From f66507296f3d45a5c8249a942b3825e0399e0b2a Mon Sep 17 00:00:00 2001 From: Josh Edney Date: Mon, 12 May 2025 14:09:51 +0100 Subject: [PATCH 09/11] update tests for js package to run npm install --- features/steps/steps.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/steps/steps.rb b/features/steps/steps.rb index 53249b09..028b4b08 100644 --- a/features/steps/steps.rb +++ b/features/steps/steps.rb @@ -202,7 +202,7 @@ def get_version_number(file_path) # Change directory to the js directory @js_dir = "#{base_dir}/js" Dir.chdir(@js_dir) - @output = `npm pack` + @output = `npm i && npm pack` @bugsnag_cli_package_path = "#{@js_dir}/#{@output}" Dir.chdir(base_dir) end From a5994699967276c53dde46229989ea4e7c6bd859 Mon Sep 17 00:00:00 2001 From: Josh Edney Date: Mon, 12 May 2025 14:15:56 +0100 Subject: [PATCH 10/11] remove binary file for testing --- js/bugsnag-cli-3.0.1.tgz | Bin 3796 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 js/bugsnag-cli-3.0.1.tgz diff --git a/js/bugsnag-cli-3.0.1.tgz b/js/bugsnag-cli-3.0.1.tgz deleted file mode 100644 index b0457401e9225e220d60ac2abafa5184d975624e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3796 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 K?kbl6N&o=tL}#D? From 8b781420962ed0aa0fc5e260fda318a523a8a147 Mon Sep 17 00:00:00 2001 From: Josh Edney Date: Mon, 12 May 2025 14:24:50 +0100 Subject: [PATCH 11/11] seperated arguments into an array for execFile in the CLI wrapper --- js/src/bugsnag-cli-wrapper.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/js/src/bugsnag-cli-wrapper.ts b/js/src/bugsnag-cli-wrapper.ts index 996be1cf..21b2317f 100644 --- a/js/src/bugsnag-cli-wrapper.ts +++ b/js/src/bugsnag-cli-wrapper.ts @@ -1,4 +1,4 @@ -import { exec } from 'child_process' +import { execFile } from 'child_process' import { BugsnagCreateBuildOptions, BugsnagUploadiOSOptions, BugsnagUploadJsOptions, BugsnagUploadAndroidOptions, BugsnagUploadReactNativeOptions } from './types' import * as path from "path" @@ -32,14 +32,13 @@ class BugsnagCLI { .filter(Boolean) .join(' ') - const positionalArg = target ? `"${target}"` : '' const binPath = path.resolve(__dirname, path.join('..','bin','bugsnag-cli')) - const cliCommand = `${binPath} ${command} ${kebabCaseOptions} ${positionalArg}`.trim() - + // Split CLI options to pass to execFile + const args = [...command.split(" "), ...kebabCaseOptions.split(" "), target.trim()] // Execute the command - exec(cliCommand, (error, stdout, stderr) => { + execFile(binPath, args, (error, stdout, stderr) => { if (error) { - const errorMessage = `Command failed: ${cliCommand}\n` + + const errorMessage = `Command failed: ${binPath}\n` + `Error: ${error.message}\n` + `${stdout.trim()}` reject(errorMessage)