Skip to content

Commit

Permalink
Merge pull request #137 from bugsnag/release-v1.2.0
Browse files Browse the repository at this point in the history
Release v1.2.0
  • Loading branch information
nickdowell committed Feb 17, 2022
2 parents 85f530d + 3a7880a commit 0d1dcde
Show file tree
Hide file tree
Showing 123 changed files with 966 additions and 382 deletions.
103 changes: 71 additions & 32 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
env:
ANDROID_SDK_ROOT: "/usr/local/share/android-sdk"
ANDROID_NDK_ROOT: "/usr/local/share/android-ndk"

steps:

##############################################################################
Expand All @@ -10,12 +6,11 @@ steps:
#
##############################################################################

- name: 'Build Plugin - UE 4.23'
- name: 'Build Plugin - UE 4.27'
agents:
queue: opensource-mac-unreal-4.23
queue: opensource-mac-unreal-4.27
env:
UE_VERSION: "4.23"
NDKROOT: /Users/administrator/Library/Android/sdk/ndk/16.1.4479499
UE_VERSION: "4.27"
commands:
- rm -rf "/Users/administrator/Library/Logs/Unreal Engine/LocalBuildLogs/*"
- make package
Expand All @@ -25,12 +20,14 @@ steps:
- "/Users/administrator/Library/Logs/Unreal Engine/LocalBuildLogs/*"
artifact_paths: [Build/Plugin/*.zip]
timeout_in_minutes: 30
key: plugin_4_27

- name: 'Build Plugin - UE 4.25'
- name: 'Build Plugin - UE 4.23'
agents:
queue: opensource-mac-unreal-4.25
queue: opensource-mac-unreal-4.23
env:
UE_VERSION: "4.25"
UE_VERSION: "4.23"
NDKROOT: /Users/administrator/Library/Android/sdk/ndk/16.1.4479499
commands:
- rm -rf "/Users/administrator/Library/Logs/Unreal Engine/LocalBuildLogs/*"
- make package
Expand All @@ -41,11 +38,12 @@ steps:
artifact_paths: [Build/Plugin/*.zip]
timeout_in_minutes: 30

- name: 'Build Plugin - UE 4.26'
- name: 'Build Plugin - UE 4.25'
if: build.branch =~ /main|next|^release|^integration/ || build.message =~ /\[full ci\]/
agents:
queue: opensource-mac-unreal-4.26
queue: opensource-mac-unreal-4.25
env:
UE_VERSION: "4.26"
UE_VERSION: "4.25"
commands:
- rm -rf "/Users/administrator/Library/Logs/Unreal Engine/LocalBuildLogs/*"
- make package
Expand All @@ -56,11 +54,12 @@ steps:
artifact_paths: [Build/Plugin/*.zip]
timeout_in_minutes: 30

- name: 'Build Plugin - UE 4.27'
- name: 'Build Plugin - UE 4.26'
if: build.branch =~ /main|next|^release|^integration/ || build.message =~ /\[full ci\]/
agents:
queue: opensource-mac-unreal-4.27
queue: opensource-mac-unreal-4.26
env:
UE_VERSION: "4.27"
UE_VERSION: "4.26"
commands:
- rm -rf "/Users/administrator/Library/Logs/Unreal Engine/LocalBuildLogs/*"
- make package
Expand All @@ -72,6 +71,7 @@ steps:
timeout_in_minutes: 30

- name: 'Build Plugin - UE 5 EA'
if: build.branch =~ /main|next|^release|^integration/ || build.message =~ /\[full ci\]/
agents:
queue: opensource-mac-unreal-5
env:
Expand Down Expand Up @@ -102,39 +102,61 @@ steps:
##############################################################################

- name: 'Build Android test fixtures - UE 4.27'
depends_on: [plugin_4_27]
agents:
queue: opensource-mac-unreal-4.27
env:
UE_VERSION: "4.27"
plugins:
artifacts#v1.2.0:
artifacts#v1.5.0:
download: Build/Plugin/Bugsnag-*-UE_4.27-macOS.zip
upload:
- features/fixtures/mobile/Binaries/Android/TestFixture-Android-Shipping-arm64.apk
- features/fixtures/mobile/Binaries/Android/TestFixture-Android-Shipping-armv7.apk
- features/fixtures/generic/Binaries/Android/TestFixture-Android-Shipping-arm64.apk
- features/fixtures/generic/Binaries/Android/TestFixture-Android-Shipping-armv7.apk
- "/Users/administrator/Library/Logs/Unreal Engine/LocalBuildLogs/*"
commands:
- rm -rf "/Users/administrator/Library/Logs/Unreal Engine/LocalBuildLogs/*"
- make features/fixtures/mobile/Binaries/Android/TestFixture-Android-Shipping-arm64.apk
- features/scripts/build-fixture.sh Android
timeout_in_minutes: 60
key: android_fixture

- name: 'Build iOS test fixture - UE 4.27'
depends_on: [plugin_4_27]
agents:
queue: opensource-mac-unreal-4.27
env:
UE_VERSION: "4.27"
plugins:
artifacts#v1.2.0:
artifacts#v1.5.0:
download: Build/Plugin/Bugsnag-*-UE_4.27-macOS.zip
upload:
- features/fixtures/mobile/Binaries/IOS/TestFixture-IOS-Shipping.dSYM
- features/fixtures/mobile/Binaries/IOS/TestFixture-IOS-Shipping.ipa
- features/fixtures/generic/Binaries/IOS/TestFixture-IOS-Shipping.dSYM
- features/fixtures/generic/Binaries/IOS/TestFixture-IOS-Shipping.ipa
- "/Users/administrator/Library/Logs/Unreal Engine/LocalBuildLogs/*"
commands:
- rm -rf "/Users/administrator/Library/Logs/Unreal Engine/LocalBuildLogs/*"
- make features/fixtures/mobile/Binaries/IOS/TestFixture-IOS-Shipping.ipa
- features/scripts/build-fixture.sh IOS
timeout_in_minutes: 60
key: ios_fixture

- name: 'Build macOS test fixture - UE 4.27'
depends_on: [plugin_4_27]
agents:
queue: opensource-mac-unreal-4.27
env:
UE_VERSION: "4.27"
plugins:
artifacts#v1.5.0:
download: Build/Plugin/Bugsnag-*-UE_4.27-macOS.zip
upload:
- TestFixture-macOS.zip
- "/Users/administrator/Library/Logs/Unreal Engine/LocalBuildLogs/*"
commands:
- rm -rf "/Users/administrator/Library/Logs/Unreal Engine/LocalBuildLogs/*"
- features/scripts/build-fixture.sh Mac
timeout_in_minutes: 90
key: mac_fixture

##############################################################################
#
# Run E2E tests
Expand All @@ -148,9 +170,9 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.5.0:
artifacts#v1.3.0:
download:
- from: "features/fixtures/mobile/Binaries/Android/TestFixture-Android-Shipping-arm64.apk"
- from: "features/fixtures/generic/Binaries/Android/TestFixture-Android-Shipping-arm64.apk"
to: "build/TestFixture-Android-Shipping-arm64.apk"
upload: ["maze_output/failed/**/*"]
docker-compose#v3.3.0:
Expand All @@ -176,9 +198,9 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.5.0:
artifacts#v1.3.0:
download:
- from: "features/fixtures/mobile/Binaries/Android/TestFixture-Android-Shipping-armv7.apk"
- from: "features/fixtures/generic/Binaries/Android/TestFixture-Android-Shipping-armv7.apk"
to: "build/TestFixture-Android-Shipping-armv7.apk"
upload: ["maze_output/failed/**/*"]
docker-compose#v3.3.0:
Expand All @@ -204,11 +226,11 @@ steps:
agents:
queue: opensource
plugins:
artifacts#v1.5.0:
artifacts#v1.3.0:
download:
- from: "features/fixtures/mobile/Binaries/IOS/TestFixture-IOS-Shipping.ipa"
- from: "features/fixtures/generic/Binaries/IOS/TestFixture-IOS-Shipping.ipa"
to: "build/TestFixture-IOS-Shipping.ipa"
- from: "features/fixtures/mobile/Binaries/IOS/TestFixture-IOS-Shipping.dSYM"
- from: "features/fixtures/generic/Binaries/IOS/TestFixture-IOS-Shipping.dSYM"
to: "build/TestFixture-IOS-Shipping.dSYM"
upload: ["maze_output/failed/**/*"]
docker-compose#v3.3.0:
Expand All @@ -226,3 +248,20 @@ steps:
automatic:
- exit_status: -1 # Agent was lost
limit: 2

- label: 'E2E Tests - macOS 10.14'
depends_on: [mac_fixture]
timeout_in_minutes: 10
agents:
queue: opensource-mac-cocoa-10.14
plugins:
artifacts#v1.5.0:
download: TestFixture-macOS.zip
upload: ["maze_output/failed/**/*"]
commands:
- echo '--- Extracting test fixture'
- unzip TestFixture-macOS.zip
- echo '--- Installing dependencies'
- bundle install
- echo '--- Running tests'
- bundle exec maze-runner --os=macos
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ jobs:
- name: Checkout
uses: actions/checkout@v2
- name: clang-format
run: find Source Plugins/Bugsnag/Source/Bugsnag features/fixtures/mobile/Source -name '*.h' -o -name '*.cpp' | xargs /usr/bin/clang-format-12 --dry-run --Werror
run: find Source Plugins/Bugsnag/Source/Bugsnag features/fixtures/generic/Source -name '*.h' -o -name '*.cpp' | xargs /usr/bin/clang-format-12 --dry-run --Werror
- name: cspell
run: npm install -g cspell && cspell **/*.{cpp,h}
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ Plugins/*/Binaries/*

# Builds
[Bb]uild/
ArchivedBuilds/

# Whitelist PakBlacklist-<BuildConfiguration>.txt files
!Build/*/
Expand All @@ -78,7 +79,8 @@ DerivedDataCache/*
.DS_Store

# Bugsnag specific
Gemfile.lock
Plugins/Bugsnag/Source/ThirdParty/BugsnagCocoa/include
appium_server.log
maze_output/*
TestFixture-Mac-Shipping.log
TestFixture-macOS.zip
5 changes: 3 additions & 2 deletions BugsnagExample.uproject
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"FileVersion": 3,
"EngineAssociation": "4.26",
"EngineAssociation": "4.27",
"Category": "",
"Description": "Bugsnag Unreal Example Project",
"Modules": [
Expand All @@ -9,7 +9,8 @@
"Type": "Runtime",
"LoadingPhase": "Default",
"AdditionalDependencies": [
"Engine"
"Engine",
"UMG"
]
}
],
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
Changelog
=========

## 1.2.0 (2022-02-17)

* Adds support for macOS as a target platform.
[#136](https://github.com/bugsnag/bugsnag-unreal/pull/136)

## 1.1.0 (2022-02-02)

* New APIs to support forthcoming feature flag and experiment functionality.
Expand Down
72 changes: 72 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Contributing

Thanks for stopping by! This document should cover most topics surrounding contributing to `bugsnag-unreal`.

* [How to contribute](#how-to-contribute)
* [Reporting issues](#reporting-issues)
* [Fixing issues](#fixing-issues)
* [Adding features](#adding-features)
* [Architecture](#architecture)
* [Releasing](#releasing)

## Reporting issues

Are you having trouble getting started? Please [contact us directly](mailto:[email protected]?subject=%5BGitHub%5D%20Cocos2d%20-%20having%20trouble%20getting%20started%20with%20Bugsnag) for assistance with integrating Bugsnag into your application.
If you have spotted a problem with this module, feel free to open a [new issue](https://github.com/bugsnag/bugsnag-unreal/issues/new?template=Bug_report.md). Here are a few things to check before doing so:

* Are you using the latest version of `bugsnag-unreal`? If not, does updating to the latest version fix your issue?
* Has somebody else [already reported](https://github.com/bugsnag/bugsnag-unreal/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen) your issue? Feel free to add additional context to or check-in on an existing issue that matches your own.
* Is your issue caused by this module? Only things related to the `bugsnag-unreal` module should be reported here. For anything else, please [contact us directly](mailto:[email protected]) and we'd be happy to help you out.

### Fixing issues

If you've identified a fix to a new or existing issue, we welcome contributions!
Here are some helpful suggestions on contributing that help us merge your PR quickly and smoothly:

* [Fork](https://help.github.com/articles/fork-a-repo) the
[library on GitHub](https://github.com/bugsnag/bugsnag-unreal)
* Build and test your changes.
* Commit and push until you are happy with your contribution
* [Make a pull request](https://help.github.com/articles/using-pull-requests)
* Ensure the automated checks pass (and if it fails, please try to address the cause)

### Adding features

Unfortunately we’re unable to accept PRs that add features or refactor the library at this time.
However, we’re very eager and welcome to hearing feedback about the library so please contact us directly to discuss your idea, or open a
[feature request](https://github.com/bugsnag/bugsnag-unreal/issues/new?template=Feature_request.md) to help us improve the library.

Here’s a bit about our process designing and building the Bugsnag libraries:

* We have an internal roadmap to plan out the features we build, and sometimes we will already be planning your suggested feature!
* Our open source libraries span many languages and frameworks so we strive to ensure they are idiomatic on the given platform, but also consistent in terminology between platforms. That way the core concepts are familiar whether you adopt Bugsnag for one platform or many.
* Finally, one of our goals is to ensure our libraries work reliably, even in crashy, multi-threaded environments. Oftentimes, this requires an intensive engineering design and code review process that adheres to our style and linting guidelines.

## Architecture

The `bugsnag-unreal` [Plugin](https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/Plugins/) provides:

* Native crash reporting for Android and iOS
* An Unreal Engine C++ interface for initialization, logging breadcrumb, reporting non-fatal errors, recording report diagnostics, and session management

The root directory of this repository contains an example project that demonstrates use of the Bugsnag Plugin, which itself is located in [`Plugins/Bugsnag`](Plugins/Bugsnag).

To build the example project for Android or iOS, you must first run `make` in the top level directory to prepare the Plugin's dependencies.
This step requires macOS with the Android NDK & SDK and Xcode.

## Releasing

### Making the release

1. Update the changelog with any missing new features and fixes
2. Bump the version number and create a pull request by running `make prerelease VERSION=[number]`
3. Merge the pull request once approved and manual testing of the release has passed
4. Run `make release VERSION=[number]` to tag and draft a new release on GitHub
5. Wait for the `main` branch CI build, and download the `Bugsnag-*-src.zip` artifacts
6. Edit the release on GitHub, copying the changelog entry and uploading the Plugin artifacts

#### Post-release checks

- [ ] Have all Docs PRs been merged?
- [ ] Do the installation instructions work using the released artifact?
- [ ] Can a freshly created example app send an error report from a Shipping build, using the released artifact?
2 changes: 1 addition & 1 deletion Config/DefaultGame.ini
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ ProjectName=BugsnagExample
Description=Bugsnag Example Unreal Project
Homepage="https://www.bugsnag.com"
SupportContact="https://www.bugsnag.com/contact"
CopyrightNotice=Copyright 2021 Bugsnag. All Rights Reserved.
CopyrightNotice=Copyright 2022 Bugsnag. All Rights Reserved.

8 changes: 8 additions & 0 deletions Config/DefaultGameUserSettings.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@


[/Script/Engine.GameUserSettings]
FullscreenMode=2
ResolutionSizeX=1280
ResolutionSizeY=720
Version=5

6 changes: 6 additions & 0 deletions Config/DefaultInput.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@


[/Script/Engine.InputSettings]
bCaptureMouseOnLaunch=False
DefaultViewportMouseCaptureMode=NoCapture

Binary file modified Content/MainMenuWidget.uasset
Binary file not shown.
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
source 'https://rubygems.org'

gem 'bugsnag-maze-runner', git: 'https://github.com/bugsnag/maze-runner', tag: 'v6.9.2'
gem 'bugsnag-maze-runner', git: 'https://github.com/bugsnag/maze-runner', tag: 'v6.9.3'
Loading

0 comments on commit 0d1dcde

Please sign in to comment.