Skip to content

Commit 3a6679d

Browse files
Merge remote-tracking branch 'origin/master' into Fix/regexValidateAbi
2 parents 5800eb6 + 6f3903c commit 3a6679d

File tree

72 files changed

+1975
-28
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+1975
-28
lines changed

.github/pull_request_template.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
### Version Increment
2+
Please ensure you have incremented the package version in the package.json as necessary.
3+
- [ ] I have incremented the package.json according to [semantic versioning](https://docs.unity3d.com/Manual/upm-semver.html)
4+
- [ ] No version increment is needed; the change does not impact SDK or Sample code/assets
5+
16
### Docs Checklist
27
Please ensure you have addressed documentation updates if needed as part of this PR:
38
- [ ] I have created a separate PR on the sequence docs repository for documentation updates: [Link to docs PR](https://github.com/0xsequence/docs/pulls)

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ crashlytics-build.properties
101101
chaintest.out
102102
TestResults_Edit.xml
103103
TestResults_Play.xml
104+
Builds/
105+
PlatformCompileTestErrors/
104106

105107
# Temporary test files
106108
Assets/InitTestScene*.unity*
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M
2+
org.gradle.parallel=true
3+
android.enableJetifier=true
4+
android.useAndroidX=true
5+
unityStreamingAssets=**STREAMING_ASSETS**
6+
**ADDITIONAL_PROPERTIES**
7+
8+
android.enableR8=**MINIFY_WITH_R_EIGHT**

Assets/PlayFab/PlayFabEditorExtensions/Editor/Resources/MostRecentPackage.unitypackage.meta renamed to Assets/Plugins/Android/gradleTemplate.properties.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
apply plugin: 'com.android.library'
2+
**APPLY_PLUGINS**
3+
4+
dependencies {
5+
implementation fileTree(dir: 'libs', include: ['*.jar'])
6+
implementation 'androidx.security:security-crypto:1.1.0-alpha03'
7+
8+
**DEPS**}
9+
10+
android {
11+
compileSdkVersion **APIVERSION**
12+
buildToolsVersion '**BUILDTOOLS**'
13+
14+
compileOptions {
15+
sourceCompatibility JavaVersion.VERSION_1_8
16+
targetCompatibility JavaVersion.VERSION_1_8
17+
}
18+
19+
defaultConfig {
20+
minSdkVersion **MINSDKVERSION**
21+
targetSdkVersion **TARGETSDKVERSION**
22+
ndk {
23+
abiFilters **ABIFILTERS**
24+
}
25+
versionCode **VERSIONCODE**
26+
versionName '**VERSIONNAME**'
27+
consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD**
28+
}
29+
30+
lintOptions {
31+
abortOnError false
32+
}
33+
34+
aaptOptions {
35+
noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ')
36+
ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
37+
}**PACKAGING_OPTIONS**
38+
}**REPOSITORIES**
39+
**IL_CPP_BUILD_SETUP**
40+
**SOURCE_BUILD_SETUP**
41+
**EXTERNAL_SOURCES**

Assets/Plugins/Android/mainTemplate.gradle.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/SequenceSDK/Editor.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.IO;
4+
using System.Linq;
5+
using System.Numerics;
6+
using NUnit.Framework;
7+
using Sequence.Config;
8+
using UnityEditor;
9+
using UnityEditor.Build;
10+
using UnityEditor.Build.Reporting;
11+
using UnityEngine;
12+
13+
namespace Sequence.Editor
14+
{
15+
/// <summary>
16+
/// This test will build the project for all platforms and check if the build is compiled successfully
17+
/// </summary>
18+
public static class SequencePlatformCompileTest
19+
{
20+
private const string BuildDirectory = "Builds";
21+
private static List<string> _failedBuilds;
22+
23+
[MenuItem("Sequence Dev/Platform Compile Test")]
24+
public static void RunBuildTest()
25+
{
26+
BigInteger startEpochTime = new BigInteger(DateTimeOffset.Now.ToUnixTimeSeconds());
27+
ClearPreviousErrors();
28+
29+
string[] scenes = GetEnabledScenes();
30+
31+
#if UNITY_EDITOR_WIN
32+
BuildPlatform(BuildTarget.StandaloneWindows64, $"{BuildDirectory}/WindowsBuild", scenes);
33+
#endif
34+
#if UNITY_EDITOR_OSX
35+
BuildPlatform(BuildTarget.StandaloneOSX, $"{BuildDirectory}/MacOSBuild", scenes);
36+
BuildPlatform(BuildTarget.iOS, $"{BuildDirectory}/iOSBuild", scenes);
37+
#endif
38+
BuildPlatform(BuildTarget.WebGL, $"{BuildDirectory}/WebGLBuild", scenes);
39+
AndroidBuildTest($"{BuildDirectory}/AndroidBuild", scenes);
40+
41+
Debug.Log("Platform Compile Test Completed. Check the console for errors.");
42+
foreach (var failedBuild in _failedBuilds)
43+
{
44+
Debug.LogError(failedBuild);
45+
}
46+
47+
BigInteger endEpochTime = new BigInteger(DateTimeOffset.Now.ToUnixTimeSeconds());
48+
Debug.Log($"Total Test Time: {endEpochTime - startEpochTime} seconds");
49+
}
50+
51+
private static void ClearPreviousErrors()
52+
{
53+
_failedBuilds = new List<string>();
54+
55+
string errorDirectory = "PlatformCompileTestErrors";
56+
if (Directory.Exists(errorDirectory))
57+
{
58+
var txtFiles = Directory.GetFiles(errorDirectory, "*.txt");
59+
foreach (var file in txtFiles)
60+
{
61+
File.Delete(file);
62+
}
63+
}
64+
else
65+
{
66+
Directory.CreateDirectory(errorDirectory);
67+
}
68+
}
69+
70+
private static string[] GetEnabledScenes()
71+
{
72+
return EditorBuildSettings.scenes
73+
.Where(scene => scene.enabled)
74+
.Select(scene => scene.path)
75+
.ToArray();
76+
}
77+
78+
private static void BuildPlatform(BuildTarget target, string path, string[] scenes)
79+
{
80+
try
81+
{
82+
BuildToPlatformAndCheckForSuccess(target, path, scenes);
83+
}
84+
finally
85+
{
86+
CleanupBuildDirectory();
87+
}
88+
}
89+
90+
private static void BuildToPlatformAndCheckForSuccess(BuildTarget target, string path, string[] scenes)
91+
{
92+
BuildReport report = BuildPipeline.BuildPlayer(scenes, path, target, BuildOptions.None);
93+
94+
if (report.summary.result != BuildResult.Succeeded)
95+
{
96+
_failedBuilds.Add($"{target} build failed with {report.summary.totalErrors} errors. Please see {BuildDirectory}/{target}.txt for details.");
97+
LogErrorsToFile(report, target);
98+
}
99+
}
100+
101+
private static void CleanupBuildDirectory()
102+
{
103+
if (Directory.Exists(BuildDirectory))
104+
{
105+
Directory.Delete(BuildDirectory, true);
106+
}
107+
}
108+
109+
private static void LogErrorsToFile(BuildReport report, BuildTarget target)
110+
{
111+
string errorDirectory = "PlatformCompileTestErrors";
112+
if (!Directory.Exists(errorDirectory))
113+
{
114+
Directory.CreateDirectory(errorDirectory);
115+
}
116+
117+
string errorFilePath = Path.Combine(errorDirectory, $"{target}.txt");
118+
119+
using (StreamWriter writer = new StreamWriter(errorFilePath, false))
120+
{
121+
writer.WriteLine($"Build Time: {DateTime.Now:yyyy-MM-dd HH:mm:ss}");
122+
writer.WriteLine($"Platform: {target}");
123+
writer.WriteLine($"Build Errors Summary:");
124+
writer.WriteLine($"Total Errors: {report.summary.totalErrors}");
125+
writer.WriteLine();
126+
writer.WriteLine("Detailed Errors:");
127+
128+
foreach (var step in report.steps)
129+
{
130+
foreach (var message in step.messages)
131+
{
132+
if (message.type == LogType.Error)
133+
{
134+
writer.WriteLine($"[{message.type}] {message.content}");
135+
}
136+
}
137+
}
138+
}
139+
}
140+
141+
private static void AndroidBuildTest(string path, string[] scenes)
142+
{
143+
SequenceConfig config = SequenceConfig.GetConfig();
144+
bool isSecureStorageEnabled = config.StoreSessionPrivateKeyInSecureStorage;
145+
BuildTarget target = BuildTarget.Android;
146+
147+
try
148+
{
149+
BuildToPlatformAndCheckForSuccess(target, path, scenes);
150+
151+
AssertPluginCompatibility(config, target);
152+
AssertAppropriateScriptingDefines(config, target);
153+
154+
config.StoreSessionPrivateKeyInSecureStorage = !config.StoreSessionPrivateKeyInSecureStorage;
155+
156+
BuildToPlatformAndCheckForSuccess(target, path, scenes);
157+
158+
AssertPluginCompatibility(config, target);
159+
AssertAppropriateScriptingDefines(config, target);
160+
}
161+
finally
162+
{
163+
config.StoreSessionPrivateKeyInSecureStorage = isSecureStorageEnabled;
164+
165+
CleanupBuildDirectory();
166+
}
167+
}
168+
169+
private static void AssertPluginCompatibility(SequenceConfig config, BuildTarget target)
170+
{
171+
PluginImporter pluginImporter = AssetImporter.GetAtPath(AndroidDependencyManager.SecureStoragePluginPath) as PluginImporter;
172+
Assert.IsNotNull(pluginImporter, "Plugin not found at path: " + AndroidDependencyManager.SecureStoragePluginPath);
173+
Assert.AreEqual(config.StoreSessionPrivateKeyInSecureStorage, pluginImporter.GetCompatibleWithPlatform(target));
174+
}
175+
176+
private static void AssertAppropriateScriptingDefines(SequenceConfig config, BuildTarget target)
177+
{
178+
string defines = PlayerSettings.GetScriptingDefineSymbols(NamedBuildTarget.FromBuildTargetGroup(BuildPipeline.GetBuildTargetGroup(target)));
179+
Assert.AreEqual(config.StoreSessionPrivateKeyInSecureStorage, defines.Contains(AndroidScriptDefineSetup.EnableAndroidSecureStorage));
180+
}
181+
}
182+
}

Assets/SequenceSDK/Editor/SequencePlatformCompileTest.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/SequenceSDK/Indexer/Tests/ChainIndexerTests.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ public async Task TestRuntimeStatus(Chain chain)
9494
Assert.IsTrue(result.indexerEnabled);
9595
Assert.IsTrue(result.healthOK);
9696
Assert.IsFalse(string.IsNullOrWhiteSpace(result.startTime));
97-
Assert.IsFalse(string.IsNullOrWhiteSpace(result.ver));
9897
Assert.IsFalse(string.IsNullOrWhiteSpace(result.branch));
9998
Assert.IsFalse(string.IsNullOrWhiteSpace(result.commitHash));
10099
Assert.AreEqual(chain.GetChainId(), result.chainID);

0 commit comments

Comments
 (0)